The Billy Project

In Pursuit of Artificial Intelligence


Overview | Downloads | Manual History UDLP2 Spec Donate |

Join the mailing list!

To view the archives and statistics for the list,
go here.

The Billy Project mailing list is proud to be hosted by Topica

Latest news

March 3, 2006 - Released the UDLP2 Link Shell v3.0.1, which (hopefully!) fixes a long-standing bug which caused the linked bots to continually just repeat their names.

September 4, 2003 - Released today is the long-awaited UDLP2 Link Shell 3.0, to accompany the new Billy. However, it is a separate release and separate download.



UDLP2 is developed by Gregory G. Leedberg. If you have any suggestions, questions, or comments, feel free to send it to me.

UDLP2 Specification


If you implment UDLP2 in your own bots, all I ask is that I get some credit for having created UDLP2. In your manual, just give credit to GREG LEEDBERG for the UDLP2 technology, and give a link to for the latest version of the Link Shell. If you wish, you may include the latest Link Shell distribution ZIP file, as long as you include the entire contents of the file, unmodified. Or you can just give the link to my site for the newest version. Also, if you notify me when you release your program, I may (or may not! :) ) make a mailing on my fairly large Billy Project mailing list about your bot.


Implementing UDLP2 is pretty straightforward.

First, how to get your program to be recognized by the UDLP2 Shell as a valid program. Your program needs to have a file called UDLP.NFO in the same directory as the executable file. This file will give the UDLP2 Shell all the information it needs to link with your program. This file is an ASCII file, with four lines. The first line is the major version of UDLP (protocol, not the shell) that you are supporting, and the second line is the revision number of UDLP that you are supporting. Currently, the version is 2 and the revision is 0. This allows your program to be backwards compatible if future versions of UDLP are created. The third line is the name of the executable file for your program (EXE extension included). The fourth line is the name of your AI bot. A sample UDLP.NFO file follows (this is taken straight from Daisy 1.1):


Now, the technical info on making your program acutally link and converse in real time:

You should first be aware that each time your program is run from the link shell, it will only have to respond to ONE statement. It will be run a separate time for each statement it needs to respond to.

  1. When your program starts, before it displays anything to the screen, you should check the current directory for a file named CHAT.MSG. If it exists, enter "link mode". How you do this is up to you. In Billy programs, I have one procedure for linked conversations, and one procedure for normal conversations. Make sure that if your program is in link mode, that it does not display ANYTHING to the screen, or clear the screen.
  2. Read in two lines from CHAT.MSG. The first line will have the name of the bot/person that your bot needs to respond to. The second line is the actual statement that your program needs to take as input and generate a response to. Both are strings.
  3. Have your program generate a response to the input, but remember to NOT display it to the screen.
  4. Rather than displaying to the screen, your program should open CHAT.MSG up again, clear the contents from the file, and just write one line to it, which is its response.
  5. After this, your program should stop running.

-Greg Leedberg, 3-20-2001