Symbol Records
Description
Symbol records are a general purpose record type that serves many different purposes within OpenHoldem and OpenScrape. The common characteristic of these records is that they all contain a name and a free-form text field. The interpretation of that text field is different, depending on the name of the symbol record. The table in the technical reference section below describes how the free-form text is interpreted for each different Symbol record type.
Manipulating symbol records using OpenScrape
To create a new symbol record, select the “Symbols” category in the record tree display on the Table Map Editor window, and click the “New” button. A window will be displayed that allows you to enter the free-form text for this new record. To edit an existing symbol record, select the record in the record tree display on the Table Map Editor window, and click the “Edit” button. A window will be displayed that allows you to adjust the free-form text for this record, or change the record name itself. To delete an existing symbol record, select the record in the record tree display on the Table Map Editor window, and click the “Delete” button. A window will be displayed asking for verification of this action.
Note: The Insert and Delete keys can also be used as a shortcut for adding and deleting Symbol records.
In the case of the “New” and “Edit” actions, the window that pops up also contains a field for “Titlebar text”, a button to parse the title bar text, and a field to display the parse results. These three controls are only relevant if the record name is one of the ttlimits types. If a ttlimits record type is selected, these fields will be enabled, otherwise they will be grayed out.
These three fields allow you to test the parsing of the window’s title bar text with the parse string that is specified in the “String” field, and see the results of this parse in the results field at the bottom of the window. The “Titlebar text” field is initially populated with the titlebar text of the window that OpenScrape is attached to (via the “Green Circle Button”), but this text can be overridden with anything you want to test parse.
Technical Reference
In the Table Map (.tm) file, these records will be preceded with the characters "s$". Symbol records have the following format:
s$<name> <text>
<name> is the name of the record (see table below) <text> is the content of the record
Valid symbol records
Symbol record | Description |
titletext, titletext0 - titletext9 | When the “Green Circle Button” is pressed, OpenHoldem will look through each of these symbols and do a partial match of <text> to each window’s title bar text. If any substring provided in any of these symbols matches, then the window is considered a match. |
!titletext, !titletext0 - !titletext9 | When the “Green Circle Button” is pressed, OpenHoldem will look through each of these symbols and do a partial match of <text> to each window’s title bar text. If all substrings provided in all of these symbols do not match, then the window is considered a match. |
ttlimits, ttlimits0 - ttlimits9 |
These symbols are intended to provide a format string that is used to parse the window’s titlebar text, and extract sblind, bblind, bigbet, ante and game type information. The syntax usage of the format string is very much like the standard C-language format strings for scanf and printf. The placeholders use the caret character as the indicator and have the following meanings: ^h hand number ^d dummy integer (read chars 0-9 only) ^f dummy float (read chars 0-9 including decimal ’.’) ^s sblind ^b bblind ^B bigbet ^a ante ^v sb or bb depending on limit type ^V bb or BB depending on limit type ^* skip all text up to the literal character following the * ^R roman numeral as in "Level VIII" as typically seen in SNGs ^L limit indicator
For the integer and float numerics, the scanner will automatically accept and skip a leading dollar sign “$” or leading/trailing cent sign “¢” (ascii 162 hex a2). In the case of the cent sign the target number will be divided by 100. The scanner will also recognize the standard trailing metric unit multipliers of “k” and “m” (1000 and 1000000 respectively). The following case-insensitive strings are recognized for the ^L limit indicator: no limit, no-limit, nolimit, nl pot limit, pot-limit, potlimit, pl fixed limit, fixed-limit, fixedlimit, fl, limit As an example, this title bar text "NL SNG Level VI 25/50 (2)" could be parsed with this format string "^L SNG Level ^R ^s/^b (^a)" to result in the sblind, bblind and game type being recognized. If multiple ttlimits symbols are provided, then the engine will scan each in order, and extract matching information from the first time it is found. That means that if you specify ^s in both ttlimits and ttlimits3, for example, it will be extracted from ttlimits and ignored in ttlimits3. OpenHoldem allows you to specify up to 11 ttlimits records in any single Table Map file. Specifying multiple ttlimits records might be needed if a given Table Map file is intended to describe multiple Texas Hold’em game flavors. However, it is a best practice to define different game flavors in different Table Maps, and thus most Table Maps contain a single ttlimits symbol record. |
c0limits, c0limits0-c0limits9 | These are text format strings with the same structure as the ttlimits records described above. They are intended to be used to extract blind/limit information from the c0limits regions using text transforms. As a poker site could certainly paint the various blind/limit information in different locations in the window, it is very likely that multiple c0limits records are required, if any are needed at all. |
sitename | This record describes the name of the poker site that this Table Map is for. It is good practice to include the number of chairs and game flavor that this Table Map is intended to be used for. You might have a "fulltilt9sng", "fulltilt6ring" and "fulltilt2ring" for different Table Map files for Full Tilt’s various table layouts and flavors. This record is what is queried via the OpenHoldem "sitename$" symbol. |
network |
The name of the poker network that this Table Map is for. This is used to determine the appropriate network to query Poker Tracker data for when s$sitename is not a Poker Tracker-supported site. OpenHoldem will first check s$sitename for a supported network name, then s$network.
Both s$sitename and s$network are not case-sensitive. OpenHoldem converts them internally to lowercases. The following names are supported for PT2:
The following names are supported for PT3:
|
nchairs | The number of chairs that this Table Map supports. The value of this record is what is returned via the OpenHoldem "nchairs" symbol. |
allinconfirmationmethod |
Used by the Autoplayer what buttonßsequence to click to go allin
0: click only “max” (or “allin”)
non-zero: first click “max” (or “allin”), then click “raise” as confirmation
|
betsizeinterpretationmethod |
Used by the Autoplayer to determine how to enter the f$betsize amount into the betsize entry box on the casino window. This is necessary, as bets and raises get interpreted differently by different casinos.
Default: 3
As an example let us assume, that you are short-stacked in a SNG. Your balance is 9 big blinds before you have to post the big blind. Everybody folds and button raises to 3 big blinds. You want to push (f$betsize = 9). What amount should you enter for different casinos?
|
potmethod |
This is used to determine the appropriate site interpretation for the contents of c0pot0:
Default: 1
|
t0type - t3type |
These symbols control which OCR algorithm will get used for the specific text transform 0-3. For example if the symbol h3type is defined as fuzzy then all regions with transform Text3 will use the fuzzy algorithm. The default value is "plain" if no symbol exists for a given group.
The possible values for these symbols are "fuzzy", "plain", or a specific tolerance value. The default fuzzy text tolerance is 25%, but can be overridden by stating the value in this symbol, such as "0.355", which would cause the scraper engine to use the fuzzy text algorithm with a 35.5% tolerance value. Values of 0 are the same as "plain". |
betsizeselectionmethod |
New Symbol in version 2.0; previously, this was a global preference set from the OpenHoldem preferences GUI.
This symbol instructs the Autoplayer how to take the first action in a betsize sequence. A betsize sequence always consists of:
Valid values for this Symbol are available in a drop down control and are:
Default: None, must be explicitly specified
|
betsizedeletionmethod |
New Symbol in version 2.0; previously, this was a global preference set from the OpenHoldem preferences GUI. This symbol instructs the Autoplayer how to take the second action in a betsize sequence. A betsize sequence always consists of:
Valid values for this symbol are available in a drop down control and are:
Default: None, must be explicitly specified
|
betsizeconfirmationmethod |
New Symbol in version 2.0; previously, this was a global preference set from the OpenHoldem preferences GUI. This symbol instructs the Autoplayer how to take the fourth action in a betsize sequence. A betsize sequence always consists of:
Valid values for this Symbol are available in a drop down control and are:
Default: None, must be explicitly specified
|
buttonclickmethod |
New Symbol in version 2.0; previously, this was a global preference set from the OpenHoldem preferences GUI. This symbol instructs the Autoplayer how to click any button defined by the iXbutton region records.
Valid values for this Symbol are available in a drop down control and are:
Default: "Single"
|
betpotmethod |
Some casinos require additional input to confirm betpot actions. Valid options:
|
use_comma_instead_of_dot | Some casinos require the use of the “comma” as a decimal separator rather than the “dot”. This setting will instruct OpenHoldems autoplayer to use a comma if needed. |
handnumber_min_expected_digits | Optional parameter to specify the minimum number of digits for a valid handnumber to reduce the risk of bad scrapes and incorrect handresets. |
handnumber_min_expected_digits | Optional parameter to specify the maximum number of digits for a valid handnumber to reduce the risk of bad scrapes and incorrect handresets. |
cardscrapemethod |
|
chipscrapemethod | This Symbol instructs the “chip stack counter” within the screen scraper engine to act in one of three distinct modes of operation: If this Symbol is not present, or does not match one of the other formats, the “chip stack counter” begins counting chips at the 00 Region record, stops counting a given stack when a chip match is not found, and stops counting all stacks when the first chip in a given stack is not matched. This is the default, pre-2.0 behavior. If this symbol is set to "All”, then the scraper engine will check all 200 possible chip locations (10 stacks of 20 chips) every time a chip count is required. If this symbol is set to the format "XxY", where X is an integer between 1 and 10 representing the number of stacks, and Y is an integer between 1 and 20 representing the number of chips in each stack, then the scraper engine will check X times Y chip locations every time a chip count is required. |
islobby | If this symbol exists and is non-zero OpenHoldem will know that it is connected to a lobby window (for table.positioning and shutdown-handling). The tablemap-completeness checker will be turned off and the OH-script-symbol islobby will become true. Lobby-windows will always be positioned at the top-left of the screen where absolute coordinates equal relative window-coordinates to make hoppers more robust in case of lost focus. |
ispopup | If this symbol exists and is non-zero OpenHoldem will know that it is connected to a popup window. The tablemap-completeness checker and the table-positioner will be be turned off and the OH-script-symbol ispopup will become true. This feature can be used to connect OpenHoldem to known popup-windows with a minimalistic tablemap and then click confirmation-buttons with the i86x-regions or do other simple hopper-tasks. |