planning_a_hopper - OpenHoldem/openholdembot GitHub Wiki
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.
-
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)
-
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)
-
Wait until all tables are finished and closed
-
Close the lobby
-
Close all instances of OpenHoldem (if desired)
-
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)
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
.