Updated: December 19, 2011
UrbanTerror is a great, free First Person Shooter. It is also highly portable between systems. All of it comes zipped in a single archive that includes both Windows and Linux binaries, 32-bit and 64-bit. So all of what you need to get it running is to download the archive, extract it and then fire up the relevant file. I play the game quite often and like it very much. You can read my review if you like, and I promise, a new one is coming soon, plus I did choose it as one of the top five games of 2010. Things are looking good.
However, sometimes, UrbanTerror will refuse to run. There are two major problems that you may encounter with the game. Specifically, we will handle two errors: menudef.h not found and No server list from master server. In this troubleshooting article, I will try to provide you with answers that should help you get UrbanTerror running. Now, follow me.
menudef.h (or menddef.h) not found
You will encounter this problem on 64-bit Linux distributions. When trying to run the game, instead of the standard game menu, you will see the game console, polluted with all kinds of messages. Similarly, if you try running it from the command line, the following type of messages will be logged:
1Error: file ui/ingame.menu, line 1: file ui/menddef.h not found
1Error: file ui/ingame_options.menu, line 1: file ui/menddef.h not found
1Error: file ui/ingame_system.menu, line 1: file ui/menddef.h not found
1Error: file ui/ingame_player.menu, line 1: file ui/menddef.h not found
UI menu load time = 2 milli seconds
16 bots parsed
13 crosshairs parsed
You will see one or more instances of this failure. So what do you do now?
Without getting too technical, the problem results from the fact there's a bug in the game itself, since the game uses an older version of the ioquake3 engine. You can replace the game binary with a new version and resolve the issue. Technically, this is a workaround, but it does what you need and expect.
The workaround files can be found on
www0.org - no longer active, new link. This project replaces only the executable of
UrbanTerror with a latest version of ioq3 engine, optimized and enriched with several new features and fixes. It
does not require q3 and is compatible for online play. You might experience some small degradation in
performance, but even on semi-decent machines, the difference will be unnoticeable.
Alternatively, you can try running the 32-bit version (normally suffixed .i386). To get this working on 64-bit machines, you might have to download several 32-bit packages, including glibc and libSDL. I have tested both these fixes to work.
No server list from master server
This is a more typical, more common error and it plagues the users worldwide irrespective of their operating system and CPU architecture. If you follow threads online, you will find dozens of references to when and how this problem manifests and how to get it resolved. Apparently, it seems random. Truthfully, I have not found a single silver-bullet solution, but here's a compilation of all kinds of tweaks and fixes that might help you, plus several unique findings of my own.
If you cannot get the server listing, try the following:
Click Get New List once, wait 10 seconds, exit to main menu, try again. It might work.
Retry the same method with Refresh List instead of Get New List.
If neither of these simple fixes work, you might want to try to manually contact the server. To this end, launch the game console by pressing the tilde (~) key. Then, in the drop-down menu, type in:
/set cl_master urbanterror.net
This should contact the master server and display the list. But it might now work. Therefore, you might want to try several alternative servers, including the following:
But it is possible that this might not work either.
The next step is to try to edit the configuration files of your Urban Terror installation. Before you proceed, please backup all of the files you have to make sure you do not ruin something permanently, forcing you to reinstall the game. All of the relevant files are located in the UrbanTerror directory.
You might first want to delete servercache.dat to clear the cached server entries.
Next, edit the qtconfig.cfg file, located inside q3ut4 sub-directory. Look for the following four entries. These are the main server and up to three secondary entries, which will be contacted if preceding entries are unavailable. While we have already manually tried to make the changes using the console, you still might want to try this hack to see if you can get the server list displayed.
seta cl_master "master.urbanterror.net"
seta sv_master4 "master.quake3arena.com"
seta sv_master3 "master2.urbanterror.net"
seta sv_master2 "master.urbanterror.net"
If this step does not work either, you might want to consider troubleshooting your network. Can you ping the UrbanTerror servers or trace the route to them? Do you have a firewall or an IP blocking software that might not be allowing traffic to the server? For example, if you are using PeerBlock on Windows, which can be used to filter out so-called bad P2P IP ranges, you will learn that the default settings are fairly aggressive and include many popular gaming sites and services. To name a few, both UrbanTerror and Steam are blocked by default.
If you take a look at the screenshot below, 220.127.116.11 was blocked. If you check DNS records, you will realize that this IP address indeed belongs to master.urbanterror.net. There might be other domains resolving to this address, since the provider could be using virtual hosting and whatnot, but if you unblock the address permanently, you will be able to get UrbanTerror to display the server list.
Like I mentioned, firewalls, hosts file blacklists, parental control software, all of these could be silent blockers en route to UrbanTerror servers, which might potentially cause you grief. You will focus all of your effort on trying to resolve game issues, when there might be none.
There's another option - you could go online directly and connect to servers using a Web based tracker:
Weird stuff - incompatible local IP addresses
And the last and weirdest of all recommendations, as I've seen this happen. For some reason, you may have a misconfigured router that will not permit connections from certain internal addresses to reach the UrbanTerror servers, leaving you stranded. The resolution is to force your client to use a static IP address of some sort or change the DHCP range in your router. I admit this is crazy, but feel free to test this.
Additional tips (user comments)
Submitted by YOU! Seriously, thank to Adam for these suggestions. I took his ideas and elaborated a little on some of the extras. P.S. If you have other suggestions, do send them.
Autodownloading of maps
If you happen to see a message like Can not autodownload missing file(s), because the cURL library could not be loaded, you will need to install the libcurl3 package. Afterwards, you should restart the game. Or alternatively manually specify the library loading in the game console. Hit the tilde (~) key to open the console and type:
The actual name of the shared library may change. You'd best verify which ones you have installed. This can be done by running updatedb, locate libcurl. On startup, the game will recurse through the path and search for libraries, normally stored under /lib and /lib64, depending on your architecture. If libcurl cannot be found there, you may want to specify the LD_LIBRARY_PATH environment variable to point to the location of the libcurl library or create symbolic links. Email me if you need insutrctions for these.
Demo playback on Linux
The other problem is the demo playback under Linux, which many not work. The game can only play demos that are named in a specific manner. The filenames have to be all in capital letters, while the file extension has to be lowercase. For example: GOOD.dm_68, GOOD1234.dm_68, bad.dm_68, or BAD.DM_68.
Again, launch the console and type:
/demo <name, use above convention>
You can also manually rename the demo files. See these threads:
And we're dun!
Hopefully, this will get you running!
Well, hopefully, this tutorial will get some of your UrbanTerror problems sorted out, so that you can too enjoy this fabulous title. Judging solely by the number of available servers, the game is steadily on the rise, gaining popularity. Which is how it should be, since it's simple, free and totally fun.
Basically, most people will face the server listing problem. So please check the little things, make sure your network connectivity is okay. Reinstalling will most likely not solve your issues in this case. The 64-bit Linux bug is more severe, but also less likely to happen. Luckily, there's a very neat workaround, including a newly built game executable. You also get some user-submitted tips. Well, I guess that's all. Happy fragging. And that new review is coming soon!