TableSmith Quick Reference

[back]

Groups

Group and table names cannot include the characters "+", "-", or "="
:GroupName
1,Entry 1
2-3,Entry 2
':' - group lists entries in ranges
;GroupName
1,Entry 1
2,Entry 2
';' - group lists entries in probabilities
;!GroupName
1,Entry 1
2,Entry 2
'!' - group entries cannot be repeated in multiple calls


Group Calls

[xx~Group@mod]
[xx~Table.Group@mod]
xx - group call "re-roll tag" (optional)
@ - "+", "-", or "=" (optional)
mod - modifier to add, subtract, or set equal to
LN~ Returned result may be re-rolled


Variables

  • Must be declared at start of table, with a default value:

      %VarName%,5
      .
  • May contain numbers or text
  • May be any name; may include spaces
  • When used, name must be surrounded by percent signs ("%"); value in the variable is substituted for percent signs and variable name
  • When assigning a value to a variable, the percent signs are not used, and the assignment is encapsulated by pipes ("|"); the assignment does not display anything in the results window


Variable Assignments

|VarName?x| VarName - variable name
? - "+", "-", "*", "/", "\", ">", "<", "&", or "="
x - value to assign to or modify variable
+, -, *, / Add to, subtract from, multiply by, divide by
\ Divide and round
> Assign the larger of the two values to the variable
< Assign the smaller of the two values to the variable
& Concatenate text
= Set variable equal to value given


Parameters

  • Must be declared at start of table, but after variables
  • Either prompts user to enter text or select an items from a list
  • Text format: @x,n,prompt
  • List format: @x,n,prompt, option1,option2,option3...
  • 'x' in each example above is the variable to assign the parameter value to; for text, the user-entered text is assigned to the variable; for lists, the number of the selected choice is assigned ('1' for the first, '2' for the second, etc.)
  • Can be passed into table calls, as in [CharGen.Start(3,4)]; passing parameters in is optional, and not all parameters need to be accounted for


Functions

Abs~Number Absolute value of Number
AorAn~Text Appends "an " or "a " to "Text", depending on whether "Text" starts with a vowel
ArrClear~ArrayName Clears the array 'ArrayName'
ArrCount~ArrayName Returns the number of items in 'ArrayName'
ArrExists~ArrayName,Key Returns 1 if 'Key' exists in 'ArrayName', 0 if not
ArrGet~ArrayName,Key Returns the text associated with 'Key' in array 'ArrayName'
ArrItem~ArrayName,Key,Text If 'Key' exists in 'ArrayName', sets its associated entry to 'Text'; otherwise, adds entry 'Key' with value 'Text'
ArrNew~ArrayName Creates a new array called 'ArrayName'
ArrRemove~ArrayName,Key Removes the entry 'Key' from 'ArrayName'
Calc~Expression Calculates the result of the given expression
Cap~Text Capitalizes first character of Text
CapEachWord~Text Capitalize each word of Text
Ceil~Number Returns the smallest integer higher than or equal to "Number"
Count~Group Returns the number of entries in 'Group'
Data~FileName,KeyAttrib,KeyVal,QueryAttrib Returns a value from an XML data file
Debug~Caption Displays various information for debugging purposes
Dice~XdY?Z Dice roller
Extern~Library.Object,StringToPass Calls an Add-On tool, passing it "StringToPass"
Find~x,String1,String2 Returns point where String1 is found in String2, starting at point "x"
Floor~Number Returns the largest integer smaller than or equal to "Number"
If~conditional ? Result1/Result2 Returns "Result1" if conditional is true, otherwise nothing or "Result2" (if present)
Input~Variable,Prompt,Default Prompts user for input during execution, which is placed in "Variable"
LCase~Text Returns "Text" in all lower-case
Left~Text,x Returns leftmost x characters of Text
Length~Text Returns the length (number of characters) in "Text"
Lockout~Group,Values Locks out (i.e.; flags as used) the entries in "Group" that match the listed "Values"
Loop~n,Text Evaluates and returns 'n' interations of "Text"
Max~Var1,Var2,...Varx Returns the largest value from the listed variables
MaxVal~Group,x Returns the maximum roll that will still select entry (line) 'x' from group 'Group'
Mid~Text,x,y Returns middle y characters from Text starting at x
Min~Var1,Var2,...Varx Returns the smallest value from the listed variables
MinVal~Group,x Returns the minimum value needed to roll entry (line) 'x' from group 'Group'
Msg~Message Displays Message in a message box
Note~Text Displays "Text" as clickable result; user may click and change the text
OrderAsc~"x",Text Returns an ordered string (ascending)
OrderDesc~"x",Text Returns an ordered string (descending)
Ordinal~Value Returns a number with an ordinal suffix attached
Param~Variable,n If "Variable" is used as a list parameter, returns the list item with the index 'n'
Plural~Text Makes Text plural
Replace~SearchText,ReplaceText,SearchString Goes through "SearchString" and replaces "SearchText" with "ReplaceText"
Reset~GroupName Resets non-repeating group
Right~Text,x Returns rightmost x characters of Text
Round~Number,x Rounds Number to x decimal places
Shell~Text Shells out, calling "Text"
SortAsc~Var1,Var2,...Varx Sorts (ascending) and replaces the values in the variables
SortDesc~Var1,Var2,...Varx Sorts (descending) and replaces the values in the variables
Split~VarToSplit,"x",Var1,Var2,...Varx Splits VarToSplit into Var1, Var2, etc. using x as delimiter
Sqrt~Number Square root of Number
Status~Message Display Message in right panel of status bar
Stop~Message Displays Message, then halts table execution when user clicks 'OK'
Trim~Text Trim spaces from Text
Trunc~Number Truncate Number
UCase~Text Returns "Text" in all upper-case
Unlock~Group,Values Unlocks (i.e.; flags as available) the entries in "Group" that match the listed "Values"
Used~Group,Entry# See if an entry in a non-repeating group has been used already
While~TextToCheck,Text Calls "Text" for as long as "TextToCheck" does not equal 0