[ About ]
[ FAQ ]
[ Manifesto ]
[ Specs ]
[ Playing ]
[ Defeating ]
[ Fun & Games ]
[ Stills ]
[ Banning ]
[ Credits ]
[ Download ]
[ Utilities ]
[ Resources ]

StoogeBot FAQ

Frequently Answered Questions about the Stanford StoogeBot

I want to run both Quake and the StoogeBot on the same machine, but I can't get things to work. Can you please help me?

First of all, running Quake and the StoogeBot at the same time on the same machine requires an O/S with preemtive multitasking. For most of you, this means using either Windows 95 or Windows NT. Second, the StoogeBot needs memory to run. Quake and Windows 95 can easily soak up 16 MB of memory, so make sure that you have quite a bit more than this. Systems with at least 32 MB of memory seem to work for most people.

That said, you should first take another look at the README file that came with the StoogeBot, and if that doesn't help, then you should take a look at the rest of the questions in this FAQ. If the FAQ fails to help, then send us a short message describing the problems that you're having.

My Quake client says "no response" when I try to connect to the StoogeBot. Why?

Either the server you've chosen is unreachable, the StoogeBot and your Quake client have become out of sync, or you're connecting to the StoogeBot incorrectly. If the StoogeBot is reporting that it received packets from the server, try connecting to the StoogeBot again. If the StoogeBot isn't reporting a response from the server, then server is probably down; try a different server. If you're certain that the server is up, make sure that your Quake client is attempting to connect to the "listen" port reported by the StoogeBot when you started it. For example, if, when you start it, the StoogeBot prints out something like:

[...]
using proxy address 100.200.666.42:26003
waiting for a connection...

you should type:

port 26003

followed by:

connect 100.200.666.42

at the Quake console. If the port number is 26000, you don't have to use the "port" command.

When I try to connect to the StoogeBot, my Quake client says "no response", but then I look at the StoogeBot output, and I see that the StoogeBot has received packets. What's going on?

Unfortunately, the StoogeBot prints out some extra information when it's sitting there waiting for a connection. The bottom line is that you're probably connecting to the StoogeBot incorrectly. See the answer to the previous question for more details.

Sometimes I notice that, when my Quake client says "no response," the StoogeBot says that the connection was accepted. What does this mean, and what should I do?

This combination of events means that the StoogeBot and your Quake client have gotten out of sync. Try reconnecting to the StoogeBot so that it will attempt to make another connection with the server.

When I try to connect to the StoogeBot, I sometimes get a "bad response". Why?

The StoogeBot and your Quake client can become out of sync. If you have this problem, try connecting to the StoogeBot again.

Can I run the StoogeBot in single player mode?

If you're a masochist with a really powerful computer, then take a look at the next question. Otherwise, the answer is no.

Is there a way to use the StoogeBot on a server running on my own machine?

No, but if you're a masochist with a really powerful computer, then you might want to try the following:

First, if you haven't done so already, download and install the "winded" dedicated Quake server. The dedicated server can be found at id Software's ftp site:

ftp.idsoftware.com:/idstuff/unsup/qwded106.exe

Once you've installed the dedicated server, start it from a DOS window.

For a single player game against monsters, start the server with:

winded -noipx -dedicated 1 +coop 1

For a sixteen-player deathmatch, start the server with:

winded -noipx -dedicated 16

In both cases, the -noipx switch is essential, as the StoogeBot can't speak IPX. The -dedicated switch, while not strictly required, is used to set the maximum allowed number of players.

The next step is to start the StoogeBot in another DOS window. Use the following command to accomplish this:

stooge -port 26001 localhost

the -port switch tells the StoogeBot which port to listen on while waiting for an incoming connection. It must be different from the default port 26000 used by the dedicated server; here, port 26001 is used.

The last step is to launch a normal Quake client and to connect to the StoogeBot. To do this, start Quake as usual, bring up the console, and type:

port 26001

followed by:

connect localhost

In case you were wondering, localhost is a magic name which automatically refers to the machine you are running on.

It's important to reiterate that running a dedicated Quake server, a Quake client, and the StoogeBot all on the same machine at the same time is an immense load in terms of both memory and processing power. Don't get your hopes up before trying this, because it probably won't work.

I play Quake on an IPX network. Is the StoogeBot compatible with IPX?

Unfortunately, the StoogeBot requires TCP/IP and won't work with IPX.

How can I get my hands on the source code for the StoogeBot?

At the moment, you can't. However, once the security issues in Quake have been resolved, we intend to release our source.

It's impossible to make a secure network protocol with an adversarial client. Are you guys morons?

While it's impossible to guarantee that somebody isn't using unadvertised client-side "assistance" in a game like Quake, the idea isn't to make a completely secure network protocol. Rather, the idea is to discourage cheating, first by making the game's network protocol "secure enough" to discourage trivial circumvention, and second by adopting a means of allowing server administrators to set bot policies which either permit or forbid bot use on their servers.

Since a secure network protocol is impossible, it doesn't make sense for you not to make the source code available now. Will you please send me a copy?

No.

Having the SBot.in front of my name spoils my fun. Is there a way to get rid of it?

Of course! Simply play Quake without playing through the StoogeBot.

Aren't you worried that the StoogeBot will ruin Quake?

We are avid unassisted Quake players, and the last thing we want to see is the StoogeBot ruin internet gameplay. While administrators can ban the StoogeBot by including the phrase "no bots" in their center-printed welcome screen, it is inevitable that some low-life will try to work around this in an attempt to cheat.

Unfortunately, cheating in an internet game is relatively easy, and nearly impossible to prevent. For the most part, this is true even if some kind of client authorization scheme is used. Nevertheless, we hope that game companies will include some sort of client authentication in future games and that id Software will add authentication to both Quake and QuakeWorld. At the very least, this will make it easier for server administrators to identify bots and exclude them from play, should they choose to do so.

I think there are "hacked" StoogeBots on my server. What should I do?

Unfortunately, it is inevitable that some low-life will try to remove the StoogeBot's safeties in an attempt to cheat. We think that this is beneath contempt, and will gladly help you if you think that your server is being harassed by one of these boneheads. Simply drop us a line. To get you started with a list of suggestions, we reproduce an item from our so-called StoogeBot Manifesto:

The Top Ten Ways to Spoil the StoogeBot's Fun

10.   Switch to running a QuakeWorld server.
9.   Change the speeds of the projectiles.
8.   Highlight a weapon other than the one the player is using.
7.   Send the client invalid packets and watch the StoogeBot crash.
6.   Place "no bots please" in your server's welcome message.
5.   Build a bot detector and allow it to kick bots off of your server.
4.   Forward all players to a hidden server port.
3.   Require the player to send impulse 128 to enter the game.
2.   Encourage id to make the network protocol more secure.

... and finally [drumroll, please] ...

1.   Three simple words: "humans only please".

Is the StoogeBot really a bot?

Yes, though a more accurate term would be "cyborg". The StoogeBot is a proxy which sits between a local Quake client and a remote Quake server and performs target selection and fire control. A human player is responsible for everything else, including navigation, dodging hostile fire, seeking out items and targets, and most importantly, thinking and acting strategically.

How good is the StoogeBot?

When the bot is being operated by somebody who is also a good "unassisted" player, and when the bot has a decent connection to the server, the result is usually a very effective gib-generating team. In straight deathmatches on public servers, frag ratios of 3 to 1 in the StoogeBot's favor are very common.

Does the bot ever miss?

Absolutely. Weapons like the rocket launcher take time to reach their intended targets, and the bot must predict the motion of its targets in order to hit them. Even for "instantaneous" weapons like the shotgun, there is a network-imposed delay between the time that the bot decides to fire and the time the server acts upon that decision; the bot must also predict player movement during this delay. In either case, if the bot mispredicts, it can miss.

How can I tell if somebody is using the StoogeBot?

First, the player will have an "SBot" prepended to his or her name. Secondly, you will notice that the player can jump over obstacles and navigate twisty passages while facing backwards. Third, you might see the player rapidly switching between multiple targets, hitting them with uncanny accuracy. A player matching this description might be using the StoogeBot.

The StoogeBot is firing too late, or behind players. What's wrong?

Your latency setting is too low. Increase it using the StoogeBot Options menu until shots seem to be on target. A good first guess for the proper value is one half of your ping time as reported by the "ping" Quake console command.

The StoogeBot is firing too early, or in front of players? Ideas?

Your latency setting is too high; decrease it using the StoogeBot Options menu.

I'm having trouble getting out of the water when the StoogeBot is firing at somebody. Why?

There are some subtle interactions in the movement/firing direction decoupling that can cause underwater movement to be counter-intuitive when the bot is targeting an enemy. If you have problems getting out of the water, try shooting your weapon manually while exiting; this should solve the problem.

The StoogeBot fired a rocket into the wall and killed me, even though my splash damage was set to a high number. What's wrong with that knucklehead, anyway?

The Stooge can accidently hurt itself if it mispredicts your motion, or if somebody unexpectedly gets in the way of a shot. The moral? Be careful with those quad rockets!


Last updated on Friday, March 14, 1997.