From RPTools Wiki
Jump to navigationJump to search

table() Function

Introduced in version 1.3b39
Gets the text value from the specified table. If the row is not specified then the default roll for the table is used. The row can be either a constant or a roll. Note that what this function returns is interpreted as either a string or a number. You can put code in a table entry but that too will be returned as a string and will not be evaluated. To evaluate the result you can use eval() to evaluate e.g. the table entry 1d5 and evalMacro() to evaluate e.g. the table entry [r:1d5]


table(name, row)
tbl(name, row)


  • name - A string containing the name of the table.
  • row - The row of the table that should be returned.


Example 1: Display a random value from table "tbl1" using default roll:
[r: table("tbl1")]

Example 2: Display the first value from table "tbl1":

[r: table("tbl1", 1)]

Example 3: Display one of the first four values from "tbl1", chosen randomly:

[r: table("tbl1", "1d4")]

Example 4: Display a table row that corresponds to a token property's value (the value must be numeric):

[r: table("tbl1", Intelligence)]
[r: table("tbl1", getProperty("PCLevel"))]

Example 5: Evaluate the outcome of a table entry. The table entry must thus be something that can be evaluated, like 1d10 or roll(1,6) or 3+5:

[r: eval(table("tbl1"))]

Example 5: Evaluate the outcome of a table entry that contains code. The table entry can thus contain code, but its not required. 'code' in this case is anything between [brackets]. An example table entry could be [h:roll=1d20]You [r:if(roll<10, 'hit', 'miss')] your target. :

[r: evalMacro(table("tbl1"))]

See Also

There is a tool available to import tables from excel. You can find more about this here