E-Mail Internet Poker Server Manual (DEALER) 6 September 1995 ------------------------------------------------------------------------------- THE BASICS This section explains all you need to know to play poker by e-mail. However, by reading the entire manual you will be able to customize DEALER's behavior to suit your own taste, and, more importantly, you will be able to contribute to a quickly moving game. You communicate with DEALER by sending e-mail to a predetermined e-mail address. Your messages may contain bets as well as commands to control the amount of mail you will receive, vacations, etc. The server will take care of all administrative details, such as dealing cards, announcing actions, handling showdowns, computing winning hands, awarding money, shuffling the deck, and so on until the tournament is over. You just play your hand and read your mail. Betting: In its most basic form, betting goes as follows: when it is your turn to bet, send a message with the dollar amount you want to bet. You must have a $-sign in column 1 followed by the amount, and no other text is allowed on that line, eg. $0 The above will check or fold, whatever the case may be. DEALER will compute whether your bet constitutes a call or raise, eg. if it is $200 to you and you want to raise $300 send in a $500 bet. ----------------------------------------------------------------------------- YOUR USER-ID DEALER identifies incoming mail not by looking at the "From:" address (which can change in strange and unpredictable ways), but through a User-ID, or ID for short. Each player is assigned a six-character ID at the beginning of the tournament, and it remains the same for that player for the duration of the tournament. All private messages from the dealer to a player contain that player's ID in the subject line, for example: Subject: Holdem game (ID=casino): your cards When sending mail to DEALER, you must include the string ID= in the subject line. Other text may also be in the Subject line. If your mailer includes the old Subject line when you "reply" to a message, all you need to do is reply to a message that contains your ID and all will be well. Alternatively, you could put the ID by itself: Subject: ID=casino No spaces are allowed between the = sign and the ID. The ID is always in lowercase, and you must also supply it that way. Of course, messages that go to multiple players do not contain anyone's ID on the Subject line. If you "reply" to such a message you must supply your ID yourself by editing the Subject line. Note: if you inadvertently cc the other players on one of your moves, your ID will be revealed to the rest of the table. This is not a good idea. While opportunities for cheating are limited (and will be detected since all mail is logged), you should request a new ID from the floorman in such a case. You cannot change your own ID. If you lose your ID, write to the floorman, or wait for the reminder message that it is your turn to bet, it will contain your ID. ----------------------------------------------------------------- ADVANCE(D) BETTING It is possible, and highly recommended, to post bets in advance. Since DEALER is the only account to receive your mail, no one will find out about your advance bets. By using this feature you will be able to greatly speed up the game. The following commands are available for advance bets: CALL $x Call any bet up to $x, fold otherwise. Note that CALL $0 will check or fold when it is your turn. Recommended highly when after looking at your hole cards you decide you will fold no matter what, but also useful in later betting rounds. CALL * Call any amount. Equivalent to RAISE $0 (see below). ELSE See below under "ADVANCE BETTING FOR EXPERTS" FOLD Fold at the earliest opportunity. The FOLD command will bet $0 until you fold or the hand is over. (Equivalent to CALL/S $0; see next section for explanation of /S switch). IF See below under "ADVANCE BETTING FOR EXPERTS" MAKE $x Attempt to make the bet $x. For example, if you send in MAKE $1000 and by the time the action reaches you it is $400 to you, you end up making a $600 raise. If it was $1000 to you you would be calling. If it was more than $1000 to you, your action would fail and you would be getting mail saying that you need to make another bet. Similarly if your raise wasn't large enough. Another way of expressing what MAKE $x does is: - If it is $y to you, you'll end up raising $x - $y (if allowed). - As a consequence, if checked to you, you'll bet $x. The MAKE command is one of the most useful advance betting features; try using it whenever you can. After you get your cards for a new hand and the big blind is, say, $200, MAKE $200 is a way of saying "call when it's only $200 to me, but don't do anything if someone has raised." If you had put in a $100 small blind you would say MAKE $100 to do the same thing. If you were the big blind, MAKE $0 (or CHECK) would be appropriate. RAISE $x Attempt to raise $x. If the raise isn't large enough you'll get an error message and a chance to make another bet. Note that RAISE $0 will call any bet. Use with care when playing no-limit. POT Bet, or call and raise, the pot. If you don't have that much, go all in. This works in no-limit as well. CHECK Equivalent to MAKE $0. You intend to check, but if someone bets, you get a chance to make a different decision. JAM Bet the maximum amount allowed, eg. the pot in Pot Limit, or your entire bankroll in No Limit. UNDO Undo any advance action. It is not necessary to use these features out of turn, ie. you can also use them when it is your turn to bet. You can change your mind about these bets; just send in a new bet and it will override the existing one (provided your mail gets there in time of course). ------------------------------------------------------------------------------- STICKY BETTING By default, all the commands described above are executed once. Eg, when you post an advance CALL $0 intending to fold as soon as possible, you may still survive the first round, eg. because you were the big blind - the advance action translated into a check. Now the flop comes and you will need to make another $0 bet to fold. For such purposes, the concept of "sticky" actions was invented. When an action is sticky, it applies for the duration of the current hand, then is erased before the next hand. The syntax is a /S appended to the specific command. Examples: CALL/S $0 Keep betting $0, ie. fold at the earliest opportunity. The command FOLD does the same thing. Note that FOLD/S is redundant. POT/S Bet or raise the pot at every opportunity. ------------------------------------------------------------------------------- ADVANCE BETTING FOR EXPERTS This section describes the full set of powerful conditional advance betting features that are available. In short, an if-then-else style command language is available, where the conditions to be tested can be quite complex. This feature is designed to be powerful enough to cover nearly all betting situations, making it possible to cover almost any situation with an advance move. The general form of an advance conditional action looks like: IF/ IF/ ... ELSE The first IF line for which all conditions evaluate to TRUE will cause its action to be executed. There is a maximum of 8 IF lines per advance action. If no IF lines match then the ELSE part is executed. The ELSE part is optional. In other words, the above is equivalent to IF THEN ELSIF THEN ... ELSE ENDIF The can take the following form, best illustrated by an example: IF/P<=2500/B<=500/N=3/I:3/O:2 POT The above command means: if the pot is at most $2500, and the bet to me is at most $500, and there are 3 players in the pot, and player 3 is in, and player 2 is out, then bet (or call and raise) the pot. Conditions are one of: - Pot Size; the size of the pot when the action reaches me; specified by using /Pamount, eg. /P=1000, /P<=2000, etc. - Bet Size; the size of the bet (the amount I have to call) when the action reaches me; specified by using /Bamount, eg. /B=1000, /B>=1000, etc. - Number of Players; this count always includes yourself and answers the question "how many players are in the pot when the action reaches me"; specified through /Nnumber, eg. /N>4 or /N<=3, etc. - Players In the Pot; places a condition on players that must be in the pot (ie. not folded); specified through /I:player-number, eg. /I:1 or /I:5/I:6. Note two important things: the use of : instead of = and the way to specify multiple values for this switch; the latter example is a condition that both player 5 and 6 must be in the pot. - Players Not In the Pot; places a condition on players that must be out of the pot (ie. folded); specified through /O:player-number, eg. /O:1 or /O:5/O:6. Note two important things: the use of : instead of = and the way to specify multiple values for this switch; the latter example is a condition that both player 5 and 6 must be folded. - Betting Round: /F places a condition on the betting round for which your action will be valid. For more information see "RESTRICTING YOUR ACTION TO A CERTAIN BETTING ROUND" below. Expressions are one of: = (equal) # (not equal) > (greater) >=(greater or equal) < (less) <=(less or equal) Here are some examples of using expert-style advance betting: IF/N=2/I:1 JAM If there are only 2 players in the pot, and player 1 is in, then JAM. In other words, if it's down to just me and player 1, JAM. IF/B=0 POT IF/B<=1000 CALL * If checked to me, bet the pot. Else, call any bet up to $1000. If the bet is more do nothing. The simple form "$x" is not allowed as an action guarded by IF or ELSE, ie. the following is illegal: IF/N=2 $100 This would be illegal even if it were that player's turn to act. Effect of other switches on IF commands: The /S switch may be applied to individual actions within the IF construct, or to the IF as a whole. In the latter case, for the /S switch to have the desired effect it must appear on the first IF, in case multiple IF's are used. Examples: IF/N=2 CALL/S * IF/N=3 CALL * If only two players are left, call anything to the end. If three players are left call anything, but just once. IF/S/O:6 JAM From now until the end, when player 6 is out, jam. Other switches (/H, /Q and /R), when appearing either on the IF itself or on any of the commands inside the IF's, are always promoted to the "outer level". For example, IF/N=4 FOLD/R IF/N=3 CALL * IF/N=2 JAM The /R switch implies "REVEAL" (see below) and always takes effect even if the first IF arm is not the one actually selected. ------------------------------------------------------------------------------- QUIET MODE Normally, DEALER will confirm advance moves with a reply message. This behavior can be suppressed using the /Q switch on advance commands, eg. FOLD/Q Note: the /Q switch is not allowed on UNDO. ------------------------------------------------------------------------------- RESTRICTING YOUR ACTION TO THE CURRENT HAND Sometimes it is useful to be able to specify that your action should only apply to the current hand. While usually this situation takes care of itself, there are a few pitfalls. For instance, on the last betting round you intend to check-raise. So you check and then send in an advance JAM. Meanwhile, everyone else has also checked, the hand finishes, a new hand is dealt, and finally, your JAM arrives, which is now applied to the next hand. To avoid this situation, use the /H switch, as follows: JAM/H=99 This ensures that the JAM will only take effect during hand 99. If by the time the command is received the hand number is 100, the JAM is ignored. Note: you cannot use the /H comand to specify an action for a future hand. HINT: if your mail connection is less than reliable, ALWAYS use /H. It can prevent nasty surprises. ------------------------------------------------------------------------------- RESTRICTING YOUR ACTION TO A CERTAIN BETTING ROUND This feature allows advance actions in situations where it would otherwise be impossible or at least very dangerous to do so. You can restrict your advance action to be valid only for a certain betting round. When the action reaches you, your advance actions takes affect only if the then current betting round matches the one you specified. This is mostly useful in a situation such as the following. Suppose you are first to act after the big blind. You call, and everyone else either calls or folds, except the big blind who didn't put in an advance action. Should he check, you will see a flop; but if he bets, you need to decide whether to call or not. Typically, you might be able to decide the latter in advance but not the former. That's where this feature comes in: you want to say "call X if betting round is pre-flop". The syntax is: IF/F=1 CALL $x where F = 1 pre-flop F = 2 post-flop F = 3 turn (4th card) F = 4 river (5th and final card) An important rule to remember is that advance bets "expire" immediately after your next bet. Ie. if you have an advance action in, the dealer will attempt to apply it the first time it's your turn to bet; whether or not the action actually "fires", it is immediately discarded (unless of course you specify "sticky", but even that is erased if the first attempt to use it fails). This means that if you do someting like this pre-flop: IF/F=4 JAM intending to jam on the river, it will not work since your next "real" action will wipe it out. ------------------------------------------------------------------------------- REVEALING FOLDED HANDS In some cases players may want to "reveal" their hand even it would normally not be shown. This feature can be turned on by using the /R switch on any of the advance betting commands, eg. FOLD/R An UNDO command will erase the intent to reveal your hand. Needless to say, the default is to not reveal folded hands. ------------------------------------------------------------------------------- VACATIONS DEALER enforces certain deadlines for making your bets (more on this later). When you are going to be out of town for a longer period of time, it is best to use the vacation features described in this section. While you are on vacation, DEALER will post antes and blinds for you as necessary. When the action gets to you you will bet $0 at all times, ie. check or fold. To go on vacation, send a one liner with the command GONE "until-string", where the argument "until-string" indicates when you expect to be back. The first six characters of this string will be included in every status report that DEALER sends out. It is not interpreted and there is no penalty for returning earlier or later; it's intended strictly as a courtesy to the other players. Example: GONE 13 Sep To indicate that you are coming back from vacation, send a one-liner with the command BACK. When a player goes on vacation, if it was also his turn to bet a $0 bet will automatically be made. Vacations are announced to the rest of the table at the end of a hand. They are not announced immediately to prevent people from "going on vacation" with no intention of really leaving town, but rather with the plan to come back during the same hand when no one expects it. However, a player on vacation may come BACK at any time during the hand, and if he hasn't already been folded he has the right to play his hand. You may infer correctly from the above, that sticky actions take precedence over vacations. Unless of course your sticky action translates into an insufficient bet (possible with MAKE or RAISE), in which case you will be folded. In a given tournament, there may be limits imposed on the number of hands that can be played per day while someone is on vacation, to avoid the situation where a small number of people quickly eliminate a vacationed player by making him use up all his money in antes and blinds. ------------------------------------------------------------------------------- RESIGNING If for some reason you must resign from (quit) the game, send the following command: GONE RESIGN This will be treated as a special sort of vacation with no limits on the number of hands that can be played per day. You cannot come BACK after resigning from the game. NOTE: sometimes players resign after being eliminated from the tournament. While harmless, this has no effect whatsoever. ------------------------------------------------------------------------------- TIME OUTS When it is your turn to act you have a fixed number of "office hours" to respond. Office hours normally run from 9AM to 6PM in the timezone of the host machine, Monday through Friday, but may be changed by individual players to suit their schedule. The following examples assume a 9AM starting time and a six hour timeout: - After a bet on Tuesday, 11:15 AM you have till Tuesday, 17:15 PM to respond. - After a bet on Friday, 8:22 AM you have till Friday, 15:00 PM to respond. - After a bet on Saturday, 4:20 PM you have till Monday, 15:00 PM to respond. If you miss your deadline you will be put on vacation and a $0 bet will be entered for you. In future hands your status line will show "AWOL". While AWOL, you are NOT protected by the rule that limits the number of hands per day while someone is on vacation. ------------------------------------------------------------------------------- CHANGING OFFICE HOURS By default, the "work day" starts at 9AM in the timezone of the host machine. Each player can change the "start of day" using the START command. Example: START 12 This command will cause your day to start at 12 Noon in the timezone of the host machine. The START command does not take effect until the NEXT hand, ie. you cannot change your schedule while a hand is in progress. You can choose any value between 0 and 23 (inclusive) for your start of day. A WHAT command will tell you your own "start of day". There is no direct way to find out what the "start of day" for other players is. ------------------------------------------------------------------------------- CHANGING YOUR E-MAIL ADDRESS The ADDR command is available to change your e-mail address. Example: ADDR me@my.new.place You will receive a confirmation message both at your old address and your new address. After that, mail will go only to your new address. Note that it is easy to add address(es) to your current address, eg: ADDR current@address.com, additional@address.com Now you will receive future mail at both addresses. Note: it is of course up to the player to supply the correct address(es). In particular, the dealer does not analyze the argument to see if it contains syntax errors, and it does not "know" that the last example is a comma-separated list. It simply passes the entire string to the system mailer. ------------------------------------------------------------------------------- REVIEWING YOUR OUTGOING MAIL Sometimes it is useful to be able to check on mail delays or other types of problems with your mail to the dealer. The LOG command will retrieve copies of your mail as received by the dealer. Without an argument, retrieves "today's" mail (ie. since Midnight in the host machine's timezone). With an argument up to 4, retrieves mail from the last n days. Examples: LOG get today's mail. LOG 4 get mail from the last 4 days. ------------------------------------------------------------------------------- STARTING A ROUND Often, a new tournament or new round will start with everybody on vacation. This is done because it is not always known who will be on vacation at the start of a tournament. Players then must send in a BACK command. As soon as all players have done this, or when the standard timeout period has expired (whichever occurs first), the table will start. ------------------------------------------------------------------------------- STATUS REPORT If you forgot your hand or deleted all the status reports from the dealer and you want to get an up to date picture, send the following message: WHAT ------------------------------------------------------------------------------- TOURNAMENT STANDINGS In a tournament with multiple tables, you may want to see the total aggregate standings of all players. To get such a listing, use: SCORE Normally, this listing will not include players who have been eliminated. To see the full list including eliminated players, use SCORE/L You can also subscribe to a daily update of this listing. See "SHOWDOWNS FROM OTHER TABLES" below. Note: in case of ties, tied players are ranked in an irrelevant order; except that eliminated players are ranked in reverse order of elimination. ------------------------------------------------------------------------------- REMINDERS Periodic reminders are sent, at least twice a day, to the person whose turn it is to bet. ------------------------------------------------------------------------------- TABLE TALK "Table talk" is forwarded to the group. Any text following the line that contains the bet is considered table talk. Your comments will show up in the broadcast messages preceded by % signs - so you can't make your text look like it came from the dealer; all dealer messages start with a !. Example: $1000 I'm betting a thousand. Table talk may also be added to out of turn bets, and all table talk is shown interspersed with action in the showdown messages. Sometimes it is desirable to suppress table talk, eg. when your mail systems adds signature files which you can't remove for whatever reason. For this purpose, the command SIG may be used. It indicates that any text on lines below is to be ignored, ie. not treated as table talk. Example: JAM I'm going all in! SIG This line will not show up! Neither will this one. The SIG command must appear on a line by itself. Limitations: table talk lines longer than 80 characters are truncated to 80 characters. There is a limit of 31 lines of table talk for advance bets (additional lines are ignored); there is no limit on the number of lines when it is your turn to bet. ------------------------------------------------------------------------------- NICKNAMES At the beginning of the tournament, each player is assigned a "nickname", typically the person's first & last name as indicated by their mail header, eg. "Doyle Brunson". It might show up as follows in a dealer status report: Doyle Brunson is next to act, $500 to call. It is possible to set your nickname to something different using the NAME command, eg: NAME Texas Dolly And you would see the status report say: Texas Dolly is next to act, $500 to call. At the beginning of a tournament you will be notified whether you are allowed to change your nickname (a) never, (b) once, or (c) anytime. ------------------------------------------------------------------------------- MAIL MANAGEMENT By default, you will get every action mailed to you, including an updated status report. There are ways to customize this behavior, using the READ command. The following options exist: READ NONE Don't get any more mail, ever. This option is intended for use by players who are eliminated and don't want to receive any more mail. READ SUNDAY Receive only showdown messages. Intended for players who are eliminated and want continued coverage of the showdowns. It can also be used while on vacation. READ PICKY In this mode, you will receive only "significant" mail. You get a message only if you're not folded, and one of the following applies: - Someone raises - Cards are dealt or flopped - It's your turn to bet Regardless of whether you folded, you will always receive mail when: - A new hand is dealt - A showdown occurs (or the hand is over without a showdown) READ JUSTME Receive mail only while still active in the hand; with this option you will stop getting mail after you fold; mail resumes with (and including) the showdown of the current hand. READ ALWAYS Get all mail (default) ------------------------------------------------------------------------------- SHOWDOWNS FROM OTHER TABLES The only way to see what happens at other tables is to join the "rail". Instructions for subscribing and unsubscribing to the rail will be published at the start of the tournament. Once on the rail, you will receive every showdown message from all other tables, as well as nightly "score" messages with the grand total tournament standings. ------------------------------------------------------------------------------- GETTING HELP A summary of commands can be obtained by sending the one-liner HELP to the dealer. The latest version of this manual can be obtained by sending the one-liner MANUAL The FAQ list can be obtained by sending the one-liner FAQ ------------------------------------------------------------------------------- OTHER NOTES ON SYNTAX Syntax for bets and commands to DEALER are case in-sensitive. All commands must start on column 1, and use only a single line. Only one command per message (except for SIG command.) ------------------------------------------------------------------------------- DO's and DON'Ts 1. Don't send any commands to "floorman" or "daemon"; the correct address for the poker server is "dealer". If you have a mailer which ignores the Reply-To field, you'll have to fix the To: address yourself. I'm going to slowly stop replying to floorman mail that should have been sent to dealer instead. 2. Don't append the message you are replying to (or any other spurious information such as .sig files, etc.) Anything following your command is treated as "table talk." If you cannot get rid of your .sig file, let me know, I do have a solution for that problem. 3. When sending mail to floorman, always include your table number somewhere in your message. ------------------------------------------------------------------------------- ANTES AND BLINDS Antes and blinds go up periodically. They may go up either after each multiple of N hands, or after each multiple of N days. This will be announced at the start of the tournament. Also periodically, seats are redrawn. Blinds are always live. ------------------------------------------------------------------------------- OTHER POKER RULES In case of split pots, odd chips go the first player to the left of the dealer. If the player with the big blind is eliminated, the dealer does not move prior to the next hand, and there will be no small blind. In no limit, to qualify as a raise, the raise must be at least the size of the last bet or raise. The minimum bet is the size of the big blind. Other rules to be determined per tournament. EXAMPLE Following is an example status message from DEALER ------------------------------------------------------------------------------- To: X1, X3, X2, X4 From: dealer Subject: Broadcast Message 10008 [a1] (-> X2) ! Hand Number 2 ! Day Number 1 ! X4 raises $4950 and is all in ! X5 folds ! X1 calls - side pot ! X3 is on vacation and folds ! X2 is next to act, $4950 to call. ! Unlimited raises ! Pot size: $10050 ! Next timeout set for Wed, Aug 26 11:02 EDT ! Current board: ? ? ? ? ? +-+------------+--------+--------+------+----+--------+ |#| Name |Bankroll| Action |Status|Pot#|Pot Size| +-+------------+--------+--------+------+----+--------+ 1|D X1 | 0 | 4975 |all-in| 2 | 9850 | 2|V X3 | 4925 | 25 |Aug 30| | | 3|> X2 | 5025 | 50 | | 3 | 175 | 4| X4 | 0 | 5000 |all-in| 1 | 25 | 5| X5 | 5000 | 0 |folded| | | +-+------------+--------+--------+------+----+--------+ Your automated Holdem dealer ------------------------------------------------------------------------------- Explanatory notes: - The first column shows seat numbers; largely ignorable. - The Name field, besides players' names, can show various other symbols. The D stands for Dealer; a V indicates Vacation; note that player X3 is on vacation until (approximately) Aug 30. The arrow (>) indicates who is next to act. The next-to-act information is also indicated in the subject line. - The Bankroll field indicates each player's bankroll, ie. how much money they have in front of them. - The Action field shows how much a player has invested in the pot. - The Status field is used for a variety of purposes; some of them are shown in the example and should be self-explanatory. - The last two columns are usually blank. They are non-blank when there are side pots, as in this case. The column Pot# indicates which side pot a player is involved in. The number is equal to the number of players in that side pot. If a player is in side pot N (N players involved), he is automatically also in every side pot with > N players involved. Thus, X4 is in side pots 1, 2 and 3. Side pot 1 exists because X4 has $25 uncalled money in the pot. Should X2 fold, the $25 will be returned to X4. Player X1 is in pots 2 and 3, and player 3 is only in pot 3, so far. - The last column indicates the amount of money in the (smallest, ie. fewest number of players) side pot that the player is in.