Standard Practices
These standard practices will help you create content that is conform with the current content. This will help make all information have the same look & feel!
Unique Names
One of the most important aspects when creating new content, is to use names that are unique. If you fail to do so, then you will not be able to access the new item you just created. This is because when Excel searches through a table, if stops searching when the first match is found. So any other items with the same name will not be accessed.
Class Abilities
Class abilities have been defined using the Ability name and the class name to which it applies. This ensures that a custom class will be using a unique name - and that if an existing ability if used, we know from which class it is taken from. The format is: AbilityName (ClassName).
Examples:
- Inspire Courage (Bard)
- Damage Reduction (Barbarian)
- Divine Inspiration (Divine Emissary)
Race Abilities
Racial abilities that can be activates (i.e. turned 'On') have been defined using the racename followed by the ability name. Examples:
- Deep Dwarf vs Orcs/Goblinoids
- Doppelganger Change Shape
- Duergar vs Orcs/Goblinoids
Racial abilities that are permanent (meaning they apply their effect at all times) uses the racename followed by the word "race". If the race requires more than 6 effects, another permanent entry is created with a trailing numeral. Examples:
- Dwarf race
- Half-elf race
- Half-elf race 2
Spell Names
When defining spell names, do not use any commas in the name itself. So for instance the spell Enlarge Person, Mass should actually be Enlarge Person (Mass). All the core spell included in TOS+ are using this syntax.
Furthermore, the Sheet uses the American English for words spellings like armor, instead of the armour used in European countries.
Both the above standards will become more important starting with TOS+ v1.30+, since the Spell Names are now included in the .tos file!
Listing Abilities
This sample shows how to create a list of abilities that have limited uses per day. Each ability is on one line and uses the BULLET named cell to get the proper offset and bullet. When a Difficulty Class applies, is it displayed as shown for the "Suggestion" ability. Here is a sample formula for the Suggestion line: Example for TOS+ (with image on the right): Example for TOS FIVE/TOS 2nd: The newer managers have a b_ShowCM boolean to verify if the user wants to use checkmarks or not. Usually, these are useful for those using paper print-outs. Most creators prefer to 'group' similar lists onto the same cell, using the CR separator, which is a "Carriage Return" |
The CR, BULLET and the TAB family!
To help format text, you have these named cell at your disposition:
CR: Carriage Return
TAB: Three spaces
TABs: Six spaces
TABss: Nine spaces
BULLET: The • character
eBULLET: The · Character
CRT: CR + TAB
CRTs: CR + TABs
CRTss: CR + TABss
CRB: CR + BULLET
LFrame: ├────
RFrame: ────┤
LHFrame: ▬▬▬▬▬▌
RHFrame: ▐▬▬▬▬▬
Trailing Periods
It is not essential to add a period on the last phrase of an ability description. Periods will be useful if an ability description has many phrases, to seperate those.
DC and CL without spaces
When listing a DC (Difficulty Class) or a CL (Caster Level), do not add a space between that and the following numeral. For instance, write "DC12" instead of "DC 12"
Long Descriptions
You should always verify that the ability you are describing 'fits' in the width of the INFO area on the BACK worksheet. Although a recent update to the sheet added auto-wrapping, it it possible for a phrase to be misaligned, thanks to an average phrase width that is larger than the norm (i.e. when using lots of large characters like 'w' or 'm'). You should verify your phrases to make sure these fit well using the default font and size settings. If not, consider using a synonym for a longer word. |
Times per Day
When creating an Ability that has a "times per day" limitation, you should always add a simple formula that will display the check marks representing that number of times per day, which is very useful for those using the paper version of TOS+. Here is an example:
TOS+:="Dimension Door (Sp): 1/day, CL7 "&IF(t_CheckMark="",""," <"&t_CheckMark)&">"
Example for TOS FIVE/TOS 2nd:="Dimension Door (Sp): 1/day, CL7 "&IF(b_ShowCM,VLOOKUP(1,t_CheckMarks,2,FALSE),"")
TOS+: The named cell t_CheckMark represent the Character (by default, the capital 'O' character) that will be used to denote each 'check mark'. The times per day for an ability should always be displayed as part of the description (in this case as 1/day). For an ability that is used more than once per day, the REPT() excel function can be used to repeat the number of desired check marks, as shown here:
="Dimension Door (Sp): 3/day "&IF(t_CheckMark="",""," <"&REPT(t_CheckMark,3)&">"
Evidently, a formula returning an Integer can be used for times per day that can change according to some other factor.
TOS FIVE/TOS 2nd: Use the b_ShowCM named cell to check if the user wants to show Check Marks or not. If the user want to use Check Marks, then you can VLOOKUP() the number to use within the t_CheckMarks table, which can be found on the Tables worksheet.
It is possible to 'turn off' the display of the Check Marks; go to the Customize worksheet and click on the 'CheckMarks' link found in the "Other" section. One of the option there represent the character used for check marks: If that character is deleted (i.e. empty), then all check marks will disappear (at least, those coded as shown in the standard guide!!) |
Displaying Errors
Sometimes, the user needs to enter his choices for specific abilities, feats or else. In this case, we use the ► and ◄ to highlight the missing information, to make sure it is visible in the INFO section of the Back sheet. Since these characters cannot be saved in a simple text file, we have two named cells to handle them: ErrStart (►) and ErrEnd (◄). Try to be specific as to where the use needs to go to enter the missing information. Here is an example:
=IF(lvl_Hierophant=0,"n/a","Special Ability: "&IF(tSel_Custom_HierophantSpecial3="",ErrStart&" Not selected on Customize Sheet! "&ErrEnd,tSel_Custom_HierophantSpecial3))
Bonus Feats
When a Class (or race) receives bonus feats, there are several things to do.
- First, you need to take into account all 'bonus' feats, and increase the total number of feats accordingly, using the Bonus Feats effect. For example of this, refer to the AbilityData worksheet, and scroll down to the existing Bonus Feat (class_name).
- Second, you need to tell the user about this bonus feat. This is done through the features.
- Third, you have to check if the use has indeed selected that free feat in the feat area on the BACK worksheet. For example, this formula will check to see if the Track feat has been selected for a Ranger:
=IF(COUNTIF(tSel_Feats,"Track")=0,"Track feat missing from the Feats section {Ranger}","")
. For a Class, this code would appear in the Class Status section. For a race, a similar check would be placed in the Race Status section. - Finally, you have to consider that the prerequisites for a feat might be overruled by a class receiving a bonus feat. For example, a Monk may select Deflect Arrows as a bonus feat at 2nd level, even if he does not meet the prerequisites. Simply use the feat_name Prereqs Met effect to tell TOS+ that this class is authorized to take that feat, irrelevant of prerequisites:
Permanent | Effect Name | Effect Type | Effect Modifier |
---|---|---|---|
Yes | Deflect Arrows Prereqs Met | Unnamed | 1 |
ORDINAL(): Adds st, nd, rd or th to values
- ORDINAL
- Appends a trailing st, nd, rd or th to numbers.
- Syntax
- ORDINAL(value)
- Remarks
- Use only with Values
- Negative values will work
- Example
- ="Cast spell as a "&ORDINAL(SUM(i_CHAModif,i_CharacterLevel))&" level character"
- Note
- If the value you are using is fixed, use the named cells ST, ND, RD or TH instead of this function.
Computing Efficiency
When creating an Ability that has a complex formula, try, if possible, to avoid having excel compute that formula when it does NOT apply to the current Character. For example, this Racial Trait for the Nixie race:
=IF(tSel_Race="Nixie","Charm Person (Sp): 3/day, CL 4, DC"&11+i_CHAModif&" Will "&IF(t_CheckMark="",""," <"&REPT(t_CheckMark,3)&">"),"Inactive")
As you can see, the first thing that this formula checks is IF the current race is a "Nixie". (tSel_Race contains the race that has been selected on the Front Worksheet). Only if the current race is a "Nixie", will the Charm Person ability be computed and displayed. If the current race is not a Nixie, then this will evaluate to "Inactive", just to note this formula is not currently needed.
Miscellaneous Tips
- When giving a distance in feet, use either ft. or the single quote
- Avoid the use of the [ and ] (brackets) characters as they are used as the delimiters for .tos files
- There should always be 2 white spaces in front of the < symbol used to start check marks in TOS+
BACK to the Advanced User Guide