Skip to main content

PioSOLVER 3.0 UPI Documentation

Interface for scripting and to communicate and integrate PioSOLVER with external tools.

UPI (Universal Poker Interface) documentation.

This protocol is used by PioVIEWER and other tools to communicate with PioSOLVER.

The architecture was inspired by UCI ( Similarly to UCI, UPI allows programmers to create their own tools based on PioSOLVER engine as well as easy scripting for non­programmers.

LAST EDITED: August 2023 (PioSOLVER 3.0.0)


  • NodeID ­ those are constructed as follows: _ ­r root node _ ­r:0 first decision node * ­r:0:b100:c:8h:c:b50:As actions are separated by a colon (“:”), bets are always a cumulative amount invested by a player so far; c stands for a check or call; b stands for a bet or raise (always to cumulative amount); cards or full flops are written as they appear in the tree

  • Command arguments: _ ­are separated by spaces _ ­if you want to use an argument with a space in it (for example as a file path), use quotation marks, like this: “C:\docs and settings\my file name.cfr”

General remarks for programmers working with PioSOLVER:

You can find useful tools in PioViewer Menu -> Tools -> Configuration­ -> Debugging/Logging/Advanced. In particular

  • Enable Windows Console
    After that the viewer starts in console enable mode and you can see the communication as it happens in real time

  • Enable command log
    Writes all the Viewer-Solver communication to a file

­When you try to understand how to obtain data or results from the solver the best way is to follow the above mentioned points and do it in PioViewer. PioViewer is not a privileged program in any way, it uses the very same text interface which is available to you.