Home iconHome

What is? iconWhat is Holotable?

Forums iconForums

Downloads iconDownloads


Tutorial iconTutorial

Readme iconHolotable readme

About iconContact/About us

PC iconPlayer's Committee

Hosting by TheForce.net

Holotable is free to use. If you appreciate the ability to play online, you can donate through PayPal using mattmoseley@bellsouth.net. Don't feel like you have to, though.

kryptofis 1761
spideyguy0 1695
RossLittauer 1606
johnmichael 1601
Jedicon 1593

Complete ratings

Holotable & Holodeck readme

Holotable version 0.9.6/Holodeck version 0.3.9
Copyright 2004-2013 Matt Moseley

Windows installation:

Use the installer to put Holotable in whatever directory you like. You will not be able to see card images in either Holotable or Holodeck until the image root directory is set correctly in the holotable.ini initialization file, which should be taken care of by the installer (on Windows).

If you want to, create a shortcut on your desktop. One way to do this is to right click on Holotable.exe, select "Create Shortcut", and then move it to your desktop. You can also select "Send to" and then "Desktop (create shortcut)".

Install the GTK+ runtime if you don't already have it (you need at least minor version 2.12). A Windows port can be downloaded at


Install that and everything should be happy.

Linux installation:

Before doing anything else, you need to make sure you have GTK+ 2.12, SDL, and SDL_net on your system. GTK+ can be downloaded from www.gtk.org. SDL and SDL_net can be downloaded from www.libsdl.org. You may also be able to find RPMs or other binary packages from various websites.

Untar the Holotable *.tar.bz2 packages in a directory of your choosing. For example, you may wish to create a "holotable" directory in your home directory. Move the packages there, then untar/bzip with something like:

tar xjf holotable-0.8.3_install.tar.bz2

[Note: full Holotable packages for Linux will create a "holotable" directory in the directory where the package is extracted. Other packages (such as program updates, card image updates, etc.) should be extracted in the "holotable" directory itself.]

This will extract the files needed to run Holotable and Holodeck. If you've downloaded the images, you will need to do the same thing with their *.tar.bz2 files.

You will now need to edit the holotable.ini file to reference the correct directories for your images, the background image, and the default deck directory. You can also do this from the Table menu (select "Options") in Holotable.

Finally, you need to set the HOLOTABLE_PATH environment variable to point to the directory where you installed Holotable. As an example for those who aren't so familiar with Linux, something like this ought to work when placed in your .bashrc file in your home directory (often /home/username/.bashrc):

export HOLOTABLE_PATH=/home/username/holotable

Note: The Holotable and Holodeck binaries were built on Fedora Core 4. They may or may not work on other Linuxes; pandemonium may ensue when trying to run them somewhere else. I've done some testing on Fedora Core 4, and everything seems to more or less work. As a side note, if your opponent is on Windows and didn't build his deck post V10, you may not see all of the images for his cards. This is because the CDF files were converted to reference images with all lowercase letter filenames at that time. Having your opponent rebuild the deck from scratch (or converting the deck file by hand) from a CDF that includes at least Virtual Set 10 should solve the problem.

Note 2: Holotable 0.7.5 and 0.8.0 were built on Zenwalk 3.0. Holotable 0.8.1 and Holodeck 0.3.2 were built on Zenwalk 4.2. As before, your mileage may vary, but please let me know if you have any troubles.


Holodeck is what you should use for building decks. It has updated CDFs that are compatible with the images you can download from The Holotable website. It also removes problems with special characters that can crash Holotable. As of version 0.1.1, you can edit previously-saved decks. Several problems related to saving decks are now fixed, and there is a counter for the number of cards in the deck.

Version 0.1.2 added the ability to "zoom" images just like Holotable, and the three key areas of the window can be resized through the use of panes (like the hand area in Holotable). There is also a fix for crashes caused by pressing keys when the focus was in the list of cards from which to select or the deck list. Now pressing 'a' in either place is analogous to pressing the "Add card" button. When the focus is in the deck list, pressing 'd' will remove one copy of the selected card, and the up and down arrow keys move a card up and down (respectively) in the deck order.

Version 0.1.3 was a bugfix release that removed a problem where Holodeck would crash if you opened it and then tried to load a deck before opening a CDF file.

Version 0.1.4 changed several things regarding key bindings. The list of cards to add to your deck may now be navigated by pressing letters and numbers; if one exists, the first card that starts with the same letter or number will automatically be selected. Also, the up and down arrow keys now change the selection in either list (previously they moved a card up or down in the deck list and had no effect in the list of cards from which to choose).

Version 0.1.5 fixed a bug where, if the cursor was left over the small image preview as the selected card was changed, the resulting popups would never go away. It also changed the order cards are added to the deck list; now, cards are prepended to the list, so cards added first (usually starting cards) end up at the bottom of the list. This way starting cards will be at the top of the deck when loaded in Holotable.

Version 0.2.0 made some much-needed improvements. The ability to filter by card set was added (it had been disabled since 0.1.0 a year before), and a basic search capability was added. Also, the card type can now be set to "all" so that cards of all types can be shown when doing a search, etc. The ability to export the deck as a plain .txt file listing of the cards was also added.

Version 0.2.1 added the ability to specify cards as "starting"; this causes them to be loaded into the starting cards pile in Holotable. Also, the average destiny of the deck (without starting cards) can be calculated, and opening draws may be simulated as well (also without starting cards). Finally, you can also select destiny as a search criterion.

Version 0.3.0 improved the search capabilities by separating the lore and gametext search criteria and adding search of the icons text. Also, the comparison operators =, >=, <=, and != can be used for searching destiny, deploy, forfeit, power, ability, armor, maneuver, defense value, hyperspeed, and landspeed.

Version 0.3.1 fixed a memory leak that occurred when using the large image popup feature. Also, advanced or basic search can be selected; basic search provides much fewer options, but also makes the Holodeck window smaller. Ctrl-F activates the Search button, and Ctrl-C activates the clear button. Repeatedly pressing a letter or number key while focus is in the "cards to choose from" list will advance the selection to the next card that starts with that letter or number. A "Card Type" column was added to the "cards to choose from" list.

Version 0.3.2 added the ability to search through the "cards to choose from" list by putting the focus in the list and then typing the letters in the card name you're looking for. The list will be searched as you enter the letters in the name up until no cards match the name; the search string is reset to nothing when a card is added to your deck, when the card selection is changed by clicking with the mouse or using the up/down arrow keys, when the list loses focus, or when the Escape key is pressed. Additionally, a separate window that contains the deck list with sortable columns is available, and a card summary dialog was added (open it to see the current count of cards of different types). Finally, you can change the order of cards in the deck by holding Control and pressing the up/down arrow keys -- this should speed reordering the deck).

Version 0.3.3 changed the .htd deck file format to version 2, which does not store card text in the deck file. The card text is read from the CDF files, both in Holodeck and Holotable. This allows deck files to be kept up to date (with errata and error corrections) just by getting updated CDF files. Any old style deck files will be converted to use the new format if they are loaded and then saved. Note that cards that have changed name (as a result of the Virtual Card Revolution, etc.) will not be able to be converted automatically. These must be removed manually and have the new card name added back. Holodeck will try to indicate cards that no longer exist in the CDF and should be removed. The basic search format is now the default window configuration. Several "generic" card types are now available for the type filter -- so now you can filter by any character, rather than just Rebels, etc. The deck list is now sortable by any column (previously availabe through a separate window accessible through a menu item). If you try to change the order of any card in the deck, the view will revert to the deck order view (removing any sorting). The average destiny of the non-starting cards in the deck is always shown on the main window.

Version 0.3.4 added the ability to generate randomized decks (with the card pool selectable by set). A problem where starting cards in old deck files were not recognized was fixed.

Version 0.3.5 fixed a problem where Holodeck would crash if cards were added to a deck while the sort order on the deck was not the default. Exporting a deck list to a text file now uses the current sort order of the deck. When sorted by set or card type, headers are placed in the file indicating the set or card type, respectively, for the group of cards that follow. There is a new menu item to allow the user to export the deck list to a directory and filename of their choosing.

Version 0.3.6 fixed a problem with the deck list becoming unsorted when a card is newly added to the deck. Made image popup work more consistently when the card selection changes.

Version 0.3.7 fixed a problem where the number of starting cards was zeroed when a deck was loaded from a previously-existing deck file. Keys to increment and decrement the number of copies (of the currently-selected card in the deck list) marked as starting were added ('s' and 'r', respectively). The "average destiny" menu item was changed to give general destiny information; it now provides the number of non-starting cards of each destiny value (0-7 and other).

Version 0.3.8 added the ability to select multiple cards from the deck list to manipulate at once. This allows adding extra copies, changing the number of copies of each that are marked starting, and deleting copies of the selected cards.

Version 0.3.9 fixed a problem with crashes when adding a new card to a deck when the deck list was sorted by name.

Keyboard and mouse commands:

Click on a card and drag to move it. To move a whole stack (all cards that overlap with the one you click on, plus the ones that overlap with those, etc.), press Control, then click and drag (you can release Control at any time during the drag). You can select in Table->Options whether you want single cards and stacks to move as you drag or not.

Note: As of Holotable 0.7.4, key bindings are configurable. These list the defaults. You may generate/overwrite a default key bindings file in the Options dialog under the Initialization tab.

Flip Card: f or right mouse button (when context menus not being used)
Flip Stack: Control-f or Control-right mouse button (when context menus not being used)
Next card in stack: n
Previous card in stack: p
Straighten stack: c
Shuffle stack: Shift-s (S)
Tally cards in stack: t
Horizontal Fan: h
Vertical Fan: g
Make flip state consistent: y

Activate Force: a
Used Force: u
Draw from Force Pile: d
Draw from bottom of Force Pile: ?
Draw from Reserve Deck: w
Draw from bottom of Reserve Deck: /
Recirculate Used Pile: Shift-e (E)
Lose Force from Reserve Deck: l (lowercase L)
Retrieve from Lost Pile: x
Search Reserve Deck: 1 (subject to opponent's approval, if connected)
Search starting cards: 2 (subject to opponent's approval, if connected)
Search Force Pile: 3 (subject to opponent's approval, if connected)
Search Used Pile: 4 (subject to opponent's approval, if connected)
Search Lost Pile: 5 (subject to opponent's approval, if connected)
Peek at top X cards: 6
Swap card from hand with one from Lost Pile: 7
Draw destiny: b
Move top card of Reserve Deck to Used Pile (facedown): B
Move card to bottom of Used Pile (facedown): .
Move card to top of Used Pile (facedown): >
Move card to bottom of starting cards pile: ,
Verify pile (also hand): V

Add card to group: left click on card, then hold Shift and left click on group
Delete card from group: 9
Delete all cards from group: 8
Reposition group: 0

Rotate Card Right: r
Rotate Stack Right: Control-r
Rotate Card Left: Shift-r (R)
Rotate Stack Left: Control-Shift-r (Control-R)
Rotate Card 180 degrees: ]
Rotate Stack 180 degrees: Control-]
Rotate large image 180 degrees: [

'Use' card: q
'Deploy' card: '
'Target' card: m
Force drain: -
Lose Force to card: =
Initiate battle at location: \
Toggle hand visibility: v
Swap sides (single player only): Q
Toggle popup type: `

NOTE: If you need to look through a deck, going backwards using 'p' will be faster than 'n'.

Menu selections:

File->Load deck... - loads a deck into your hand
File->Load game... - loads a saved game. For two-player games, your opponent must enter the correct password for the load to succeed.
File->Save game... - saves card information to a file, automatically appending ".htg" if there is no file extension specified. Table size and pile positions are saved as well. There must be at least one card loaded in order to save a game.
File->Check for updates - Checks the Internet to determine if the latest version of Holotable has been installed. Also checks for CDF and image file updates and gives the user the option to automatically download and install them.
File->Quit - exits Holotable

Table->Undo - undoes the last card movement.
Table->Redo - redoes the last movement that was undone.
Table->Clear local - removes all local cards from your hand, the table, and the opponent's hand.
Table->Clear all - removes all cards from your hand, the table, and the opponent's hand (use this wisely, as your opponent may not play with you again if you do it when you're losing!).
Table->Options... - set up various Holotable options (including image root directory and default deck directory - the image root directory must be set correctly, or you won't be able to see card images).
Table->Command Window... - opens a window where you can use buttons to accomplish all pile movement actions and searches as well as swap sides
Table->Detach chat/log window - removes the chat/log window from the area next to the hand and puts it in a separate window
Table->Detach hand window - removes the hand window from the area next to the chat/log and puts it in a separate window
Table->Hide phase/turn and status bars - hides the bottom two bars in order to provide more table visibility
Table->Choose side - randomly chooses Light or Dark Side and indicates this by a chat message to your opponent
Server->Connect - connect to a server to play a game. Connects to the IP/hostname and port set in the Options dialog.
Server->Accept - set up your machine as a server for a peer to peer connection from another player. Listens on the port specified in the Options dialog. (You may not be able to accept connections depending on your network configuration).
Server->Disconnect - disconnect from a server you've connected to.
Server->Cancel Accept - stop listening for a peer to peer connection.
Server->End Game - if you are playing via the central server, you can end your game and return to the lobby without disconnecting and reconnecting. Your opponent will be returned there as well. When observing a game, this takes only you back to the central server lobby.

Help->Key reference... - Open a keyboard reference dialog, which will stay above other windows.
Help->About - list some information about Holotable.

Playing a game:

Once you've found someone to play against, you need to get connected.

Peer to peer:
One player chooses Server->Accept, and the other player sets the first player's IP address and port number in their options. The second player then chooses Server->Connect. Note that, depending on your network configuration, you may not be able to accept incoming connections. Firewall software must be configured to allow incoming connections to Holotable ("act as a server"); routers generally need to be configured to allow incoming traffic on the port number you are trying to use, and they may need to be set to do port forwarding.

Central server (current IP is www.holotable.com):
Both players put the central server's IP address and port number 5320 in their options. Both players then choose Server->Connect. This will connect to the central server, which requires authentication. You must enter the password associated with your account on the Holotable website forums (your username in Table->Options must also match the username from the forum account). After you've entered the correct password, you will see the server lobby. You can chat with other users and request games here. If you request a game from yourself, you will automatically be rejected. Any user you request a game with will see a dialog box that allows them to accept or reject the game. If they accept, you will see a message in the status bar area reflecting that, and the server lobby dialog will disappear. You can then load your decks and start playing.

Once there is a connection, both players should load their decks (it is EXTREMELY important that this be done AFTER the connection is made, and that no cards were on either player's table beforehand). Wait for one person's deck to load before loading the other deck. The status bar on the right should report details about the connection, including how many remote cards have been loaded. Once decks are loaded, go ahead and play!

Your opponent's cards will show up rotated 180 degrees from their view, just like if you were sitting across the table from them. Their cards will also be on the other side of the table. So when you play your cards on the "bottom" of the table, they show up to your opponent at the top. It is important that both of you have the same dimensions set for the playing surface size. Otherwise the one with the smaller dimension might end up with cards all stacked on each other that shouldn't be. The default option to auto-adjust the table size to the largest dimensions will take care of this for you if both players have it turned on when a game is started.

Central server lobby operation:

The central server lobby provides a place for players to meet and chat as well as find opponents for games. When you log on to the server, a window will appear that shows you the username, status, and location of everyone who is currently online. The number of people currently playing a game is shown; if you place your mouse cursor over that text, a tooltip will appear that shows the names of these players.

In the middle of the window is a combo box with various status choices. You may use these options to indicate what you are doing in the lobby. If you choose "Away", anyone who requests a game from you will automatically be rejected, and you will not see the request.

To request a game with someone, select their username in the list and click the "Request game" button. That user will see a dialog box pop up which will give them the option of accepting or rejecting your request. If your request is accepted, the server lobby window will disappear and you will be placed back in the main Holotable window, where you can load decks and start your game. If the request is rejected, a message indicating that will appear in your chat/log window on the main Holotable screen. Note that requests are also automatically rejected if the other user has their own game request pending, someone else has already requested a game from them and they have yet to respond, or the user has configured Holotable to ignore you.

The "Observation" button opens a dialog containing a list of the current games in progress. You may select one of the games in the list and click the button to request observation of that game. The players will see your request and have the choice to accept or reject it. If either player rejects your request, you will be notified and you will stay in the lobby. If both players accept it, the lobby dialog will go away and the game will load for you. Each player's name will appear by their Reserve Deck for a short period. You will be able to chat with the players and any other observers, but you cannot manipulate the cards or see anyone's hand. Either player may kick you out at any time, and you will return to the lobby. If you are done watching the game, you can select "End game" from the Server menu to go back to the lobby.

In order to provide a way to avoid harassment of various sorts that was previously possible, you may set up a list of users to ignore while on the central server. You will still see the user in the user list, but you will not see any of their chat messages sent to the lobby or any of their game requests (which will automatically be rejected). You may set up your list by clicking the 'Ignore list' button while logged onto the central server. If a user is selected in the user list area, the entry field will be prepopulated with that name when the dialog opens. You may choose to ignore a user permanently, in which case the user will always be in your ignore list until you delete them. If you ignore a user without choosing the permanent option, the user will only be ignored until you close Holotable.

You may whisper to a user by selecting the checkbox and choosing a user in the combo box. When you whisper, only you and the other user will see the message (it will be indicated by a "[whispered to <user>]" tag prepended to the message).

Quick end turn indicator:

In Holotable 0.8.3 a new feature was introduced to make indicating the end of turns easier. The area between the "Ready for phase change" button and the "Pause game" button initially has "My turn" in it. When a game is started, the user who clicks in this area first will have the area turn green with "End turn" text in it. The other user will see the area turn red with "Opponent's turn" in it. When the first user clicks in the area at the end of their turn, the appearances will switch. This is a simple way to indicate the end of your turn without having to type something in the chat area repetitively or use the specific phase change buttons (which are cumbersome for some uses).

Setting quick chat text choices:

The quick chat text combo box contents may be customized by creating a file called 'quicktext.dat' in your Holotable installation directory. Each line in the file will appear in the combo box as a quick chat text option. Once Holotable has been restarted, the quick chat text combo box will show your customized choices.

Setting default pile positions:

The holotable.ini file is written with the positions of the different piles each time the options are saved. If you upgraded to Holotable 0.4.1, your holotable.ini can be updated with the default settings by opening the options dialog and choosing "Apply" or "OK". You can then open holotable.ini and edit the default positions for the piles.

For each pile, there are X and Y offsets. The first value is the X offset, which determines how far from either edge of the playing surface the particular pile is placed. The second value is the Y offset, which is always from the bottom of the playing surface. Some players are used to having their piles on their left, which is opposite of the default position. To support anchoring the piles to the left side of the playing surface, you add "left" after the Y position for each pile that you want anchored on the left. Otherwise, each pile will be anchored to the right.

To aid in editing your holotable.ini for the particular placement you want, the size of the three vertical piles is 66x91 pixels. The Used Pile, which is horizontal, is 91x66 pixels.

Changing chat text colors:

In order to make it easier to see which messages in the chat/log area are from what source, you can change the color used for each type of message. Informational messages are shown in the color specified in the holotable.rc file. Chat messages from you and your opponent may be shown in different colors. The holotable.ini file keeps this information, and Holotable will write the default values (blue for you and red for your opponent) to the file each time the options are saved if none were in the file when Holotable started.

Colors may be specified by name (only the basics are supported) or in RGB format. For RGB format, the values should be separated by spaces and be in the range 0 to 65535.

Example (these are the lines you'd add to/modify in your holotable.ini):

Your text: 3400 78 50000
Opponent's text: orange

Card border feature:

If you want your cards to have different borders based on card type, edit your "htborders.ini" file. The format is

<card type>: <red value> <green value> <blue value> AND <card set>: <red value> <green value> <blue value>

(without the < and >) The colon is IMPORTANT!

Valid card type values are those that are used in your deck files. For example, if you wanted all interrupts to have a certain color, you'd have this line in your htborders.ini file:

Interrupt: <red> <green> <blue>

Valid set values are those used in your deck files. You can also use subsets of these. So you could make all your virtual cards have a certain color with

Virtual: <red> <green> <blue>

There are two special keywords: OTHERS and NONE. Using

OTHERS: <red> <green> <blue>

will result in each card that doesn't match the other card types you specified colors for to have this default border color. You can also use NONE like this:

<card type>: NONE

This will result in the specified card type having no border drawn for it. In this case your cards will show up just like the images you have (i.e., with the black border from the card image). You can combine OTHERS and NONE , but the effect is the same as just not doing so (no borders will be drawn for card types you didn't specify).

Valid color values are 0-255. You can find charts online that tell you what color combinations result in what colors, or you can use most imaging programs to figure it out.


Changes/bugfixes for version 0.9.6:

Changes/bugfixes for version 0.9.5:

Changes/bugfixes for version 0.9.4:

Changes/bugfixes for version 0.9.3:

Changes/bugfixes for version 0.9.2:

Changes/bugfixes for version 0.9.1:

Changes/bugfixes for version 0.9.0:

Changes/bugfixes for version 0.8.9:

Changes/bugfixes for version 0.8.8:

Changes/bugfixes for version 0.8.7:

Changes/bugfixes for version 0.8.6:

Changes/bugfixes for version 0.8.5:

Changes/bugfixes for version 0.8.4:

Changes/bugfixes for version 0.8.3:

Changes/bugfixes for version 0.8.2:

Changes/bugfixes for version 0.8.1:

Changes/bugfixes for version 0.8.0:

Changes/bugfixes for version 0.7.5:

Changes/bugfixes for version 0.7.4:

Changes/bugfixes for version 0.7.3:

Changes/bugfixes for version 0.7.2:

Changes/bugfixes for version 0.7.1:

Changes/bugfixes for version 0.7.0:

Changes/bugfixes for version 0.6.4:

Changes/bugfixes for version 0.6.3:

Changes/bugfixes for version 0.6.2:

Changes/bugfixes for version 0.6.1:

Changes/bugfixes for version 0.6.0:

Changes/bugfixes for version 0.5.5:

Changes/bugfixes for version 0.5.4:

Changes/bugfixes for version 0.5.3:

Changes/bugfixes for version 0.5.2:

Changes/bugfixes for version 0.5.1:

Changes/bugfixes for version 0.5.0:

Changes/bugfixes for version 0.4.1:

Changes/bugfixes for version 0.4.0:

Changes/bugfixes for version 0.3.1:

Changes/bugfixes for version 0.3.0:

Changes/bugfixes for version 0.2.2:

Changes/bugfixes for version 0.2.1:

Changes/bugfixes for version 0.2:

Holotable: 0.9.9

Holodeck: 0.4.0

Central game server:

Logged on:

Playing a game:


© 2005-2014
Hosting by TheForce.net
All rights to intellectual property, images, etc. remain with their respective owners.

Valid XHTML 1.0!