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


Pregeneration Directives

OverrideRolls x Rolls "x" times on the table rather than what the interface shows
OutputType HTML | XML | Text Outputs results in specified format


Functions

Abs~Number Absolute value of Number
And~expr1,expr2 Returns "1" if expr1 and expr2 are both true, otherwise "0"
AorAn~Text Appends "an " or "a " to "Text", depending on whether "Text" starts with a vowel
Bold~Text "Text" will be displayed in boldface
Calc~Expression Calculates the result of the given expression
Cap~Text Capitalizes first character of Text
CapEachWord~Text Capitalize each word of Text
CarRet~, CR~ Inserts a carriage return
Ceil~Number Returns the smallest integer higher than or equal to "Number"
Count~Group Returns the number of entries in 'Group'
Debug~Caption Displays various information for debugging purposes
Dice~XdY?Z Dice roller
DSAdd~VarName Adds a new (empty) item to the end of the dataset "VarName"
DSCount~VarName Returns the number of items in the dataset "VarName"
DSCreate~VarName,Field1,Default1,Field2,Default2,...Fieldx,Defaultx Creates a dataset, assigns it to the variable "VarName", and defines the names and defaults of each field
DSFind~VarName,StartingIndex,SearchExpression1,SearchExpression2,etc. Starting at item at "StartingIndex", using "SearchExpressionX", searches dataset "VarName" and returns index of first matching item
DSGet~VarName,Index,Field Returns the value of "Field" in the item at "Index"
DSRandomize~VarName Randomly orders the items in the dataset "VarName"
DSRead~VarName,Filename Reads the file "Data\Filename.tsd" into "VarName"
DSRemove~VarName,Index Removes the item at "Index"
DSSet~VarName,Index,Field1,Value1,Field2,Value2,...Fieldx,Valuex In the dataset "VarName", for the item at "Index", sets Field1 to Value1, Field2 to Value2, etc.
DSSort~VarName,Field1,Direction1,Field2,Direction2,...Fieldx,Directionx Sorts the items in "VarName"
DSWrite~VarName,Filename Writes the dataset "VarName" to a data file.
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"
Generate~0,Text,Group Call Imbeds linkable "Text"; when clicked, "Text" is replaced by the results of "Group Call"
If~conditional ? Result1/Result2 Returns "Result1" if conditional is true, otherwise nothing or "Result2" (if present)
IIf~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"
Italic~Text "Text" will be displayed in italics
LastRoll~ Returns the last group called and the number rolled on that group
LCase~Text Returns "Text" in all lower-case
Left~x,Text Returns leftmost x characters of Text
Length~Text Returns the length (number of characters) in "Text"
Line~alignment, width Inserts a line into the results at "alignment" (left, center, right) of a "width" percentage
Lockout~Group,Values Locks out (i.e.; flags as used) the entries in "Group" that match the listed "Values"
Log~FileName,Text Adds "Text" to the end of a file named "FileName"
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~x,y,Text Returns middle X characters from Text starting at y
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'
Mod~Dividend,divisor Divides "dividend" by "divisor" and returns the remainder
Msg~Message Displays Message in a message box
Note~Text Displays "Text" as clickable result; user may click and change the text
Or~expr1,expr2 Returns "1" if expr1 and/or expr2 are true, otherwise "0"
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'
Picture~Filename Displays "Filename" from the "Graphics" directory
Plural~Text Makes Text plural
Power~x,y Raise "x" to the power of "y"
Replace~SearchText,ReplaceText,SearchString Goes through "SearchString" and replaces "SearchText" with "ReplaceText"
Reset~GroupName Resets non-repeating group
Right~x,Text 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'
TableExists~TableName Returns "1" if a table exists with name "TableName"; otherwise, "0"
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; use "0" for "Entry#" to check the entire group rather than a single entry
Version~ Returns the current version of the TS engine
VowelStart~Text Return "1" if "Text" starts with a vowel, otherwise "0"
Xor~expr1,expr2 Returns "1" if expr1 or expr2 are true (both not both), otherwise "0"
While~TextToCheck,Text Calls "Text" for as long as "TextToCheck" does not equal 0