Converted document

OpenHoldem

Planning a Hopper

Creating a bot that wins (or buying a bot that makes the botter whine) is one thing. Putting it to the tables regularly to make some volume is another task that can be time-consuming and boring. Of course this one can be automated too, but only some tasks of the job are directly supported by OpenHoldem. OpenHoldem is mainly designed as a single-tabling poker-playing application. It is not designed for handling multiple windows (lobby, registration popups), scheduling sessions or interpreting non-numerical input. In this chapter we will consider the tasks that usually need to be done by a hopper.

Preparatory task

  • Start the casino
  • Take care about potential casino updates
  • Log in with username and password
  • Prepare / verify correct settings
  • Prepare the lobby (game-type and level)

Main hopper loop

  • Select new tables (they might or might not open immediatelly, e.g if you register to a tournament)
  • Buyin with the desired amount (once the table is open)
  • Choose an empty seat
  • Supervise the number of open tables (including registered tournaments that are expected to open soon)
  • Manage the session time (open tables until end of session - x)

Final tasks

  • Wait until all tables are finished and closed
  • Close the lobby
  • Close all instances of OpenHoldem (if desired)

Tasks that can be done by OpenHoldem

  • Automatically start new instances of OpenHoldem for popup-blocking and for the next table (since OpenHoldem 8.0.1)
  • Connect to new tables that do not yet get served by other instances of OpenHoldem
  • Arrange the poker-tables in a non-obstructive way so that every table can be scraped properly
  • Close popups (true windows with the popup-blocker, painted casino-advertisements that look similar to windows with the i86-spam-buttons)
  • Tick “wait for big-blind” in cash-games
  • Tick “auto-post blind”
  • Click “sitout” / “leave”, e.g based on session-time, opponents and PokerTracker stats.
  • Click “rematch”
  • Execute a custom rebuy-script if f$rebuy returns a positive number (rebuy-amount in dollars)
  • Click the [x] in the title-bar to close the poker-table if f$close is true
  • Disconnect if the table disappears and be ready for the next table
  • Shutdown OpenHoldem, using the f$terminate-function (since OpenHoldem 8.0.1)

Architectural conclusions

As you can see a hopper can be devided into four functional parts
  • Starting and configuring software
  • Closing software
  • Starting new tables, the main hopper loop
  • Managing a connected table (singular!)
The first two jobs are more or less trivial. Opening new tables in the main hopper loop is the main part of a hopper that can’t be done by OpenHoldem (designed as: single bot, single table, single window). So all you truely need nowadays is a table-opener (fire and forget). There are cheap and good table-openers available for the main casinos that get used by flesh-and-blood poker-players. Only for smaller pokersites you have to create such a thing on your own.
All the remaining tasks (posting blinds, rebuys, closing the table) can be done with OpenHoldems built-in hopper functionality that got added over time. This is not too difficult and only requires the configuration of a handful hopper-functions like f$sitout and f$close, plus some casino-specific tablemap-regions (sitout button) to make it work everywhere. Finally a small example to demonstrate the simplicity of OpenHoldems hopper-functions:
##f$close##
  WHEN (issittingout
    AND handsplayed > 0
    AND elapsedauto > 120)  // No autoplayer action since 2 minutes
  RETURN TRUE FORCE
.