Maps disappearing from Skirmish menu


#1

Hi there! I’ve never used these forums before, so my apologies if this is the wrong category or a question that has been answered before. For what it’s worth, I did search through the existing topics first and couldn’t find anything.

I’m using ioquake3 to run Q3A on Linux Mint, mainly to play custom maps from lvlworld.com against bots. After dropping the pk3 files into my home/ioquake3/baseq3 directory, I usually select the maps from the Single Player --> Skirmish menu. So far so good.

Recently, however, after I downloaded and added a few more maps I went into the Skirmish menu and noticed that some maps that were there before had disappeared – or rather, the shortcuts to the maps were gone. The files themselves are still in home/ioquake3/baseq3 and I can still launch all the maps using the “map” command in the console. The newer files I added all had unique names, so I’m pretty sure I didn’t inadvertently overwrite anything.

Is this normal/intended behaviour, or a bug? Is there perhaps a limit to the number of maps that can be displayed in the Skirmish menu?


#2

I think the limit is 1024, though it may be lower depending on file size of maps/*.arena files in pk3s. When you start ioquake3 it should print a message in the console with the number of maps as # arenas parsed. You can open the console by pressing shift+escape.


#3

Thanks very much for the response!

I think the limit is 1024, though it may be lower depending on file size of maps/*.arena files in pk3s.

Hmm, I have nowhere near that many maps. I just checked and I have a total of 219 pk3 files in home/ioquake3/baseq3, only 164 of which contain custom maps if I’ve counted correctly (46 of the pk3 files are not maps at all, but custom bots and player models, and the rest are the original pk3 files that came with the game, if memory serves). A few of the pk3 files contain more than one map, though most of them contain only one. I think in total I have around 172 custom maps.

Some of those are newer maps, which tend to be much larger than early releases (e.g. Hipshot’s Rustgrad, which is one of the largest at almost 35MB), but would that bring the limit down that drastically?

When you start ioquake3 it should print a message in the console with the number of maps as # arenas parsed.

Thanks. I checked and it says “170 arenas parsed” (and “105 bots parsed”, for what it’s worth). That number isn’t that much lower than the number of custom maps I have, but does the number of arenas parsed include the original id maps that are also accessible via the Skirmish menu? That would mean that around 35 or so maps are not showing up, right?

Does any of this provide any clues as to why the map shortcuts have suddenly started to disappear from the Skirmish menu?


#4

No, the pk3 size doesn’t affect max maps in the menu. “arenas parsed” includes the default id maps.

I noticed that all the arena info filenames (“file.arena”, etc) have to fit in a 1024 byte buffer for the original Q3 UI or 2048 byte buffer for the ioq3 UI. If the file names averaged 8 characters (plus 6 for .arena and 1 for the list separator) there could only be (1024 divided by 15) about 68 arena files parsed with the original Q3 UI or (2048 divided by 15) about 136 with ioq3’s UI.

(If you get ioquake3 credits when you quit from the menu, you’re using the ioq3 UI.)

I’m guessing this is the limit you ran into. Unfortunately there is no warning for this in the console or a way to increase it without changing the source code and recompiling the UI. If you run dir scripts .arena in the console it will give you a list of ‘file.arena’ etc you could add up to see if or how many files are probably ignored.


On Linux or macOS launched ioquake3 from a terminal, run dir scripts .arena in ioquake3 console, copy the list from the terminal, and then use the terminal command echo "paste the multi-line file list" | wc to get number of words, lines (files), and bytes. For me there is 91 files and 1398 out of 2048 bytes used. At this rate I’ll max out at 133 arena files.

On Windows run dir scripts .arena in ioquake3 console and then condump log.txt to save the list in %APPDATA%/Quake3/baseq3/log.txt … and then count the file list somehow. Maybe save the list of arena file to a file by itself and look at the filesize. (Though it will be slightly incorrect if saved using Windows line endings instead of Unix line endings.)


#5

Hi zturtleman

Thanks very much for the detailed response.

If the file names averaged 8 characters (plus 6 for .arena and 1 for the list separator) there could only be (1024 divided by 15) about 68 arena files parsed with the original Q3 UI or (2048 divided by 15) about 136 with ioq3’s UI.

(If you get ioquake3 credits when you quit from the menu, you’re using the ioq3 UI.)

I do see the ioquake3 credits when I quit from the menu (I see id credits first, and then a list of ioquake contributers).

In any case, this seems to add up: if the maximum number of arena files that can be displayed is ~136 (or slightly fewer), then given the ~164 custom maps I have installed and the 30 (?) maps that come with the game, it makes sense that I’m not seeing all the shortcuts in the skirmish menu. I guess that’s been the case for a while and that I only noticed it recently.

I’ve hit a bit of snag trying to follow your instructions for Linux, though (I’m sure I’m just making a stupid mistake somewhere, but I’m lost):

On Linux or macOS launched ioquake3 from a terminal, run dir scripts .arena in ioquake3 console, copy the list from the terminal, and then use the terminal command echo “paste the multi-line file list” | wc to get number of words, lines (files), and bytes.

I managed to launch ioquake3 from the terminal and then ran “dir scripts .arena” in the console, which gave me a list of .arena file which I can then see in the terminal once I quit ioquake3 … but then I’m not sure where to go from there. The instructions say to copy this list from the terminal, but I’m not sure where to copy it to.

If I try copying and then pasting the list of .arena files into a new terminal window, that just results in an attempt to run each of those files as if it were a programme. I’ve tried simply typing “echo “paste the multi-line file list” | wc” in the same terminal window, but that doesn’t seem to work. In desperation I also tried typing “echo “paste the multi-line file list” | wc” into the ioquake3 console, but that was obviously not what I was supposed to do either. What am I doing wrong?


#6

I select the list of arena files in the terminal, right click, click Copy. Open a new terminal and type echo " and then right click, click Paste, then type " | wc and press enter.

The end result should look something like this:

zack@host:~$ echo "13cube.arena
> 13dawn.arena
> 13plant.arena
> akutatourney8.arena
> azradm2.arena
> bionicle.arena
> bk_damagecase.arena
> blr-tourney1.arena
> borg.arena" | wc

After pressing enter it should print something like 91 91 1397 which is lines (files in this case), words, and bytes. If bytes is over 2048, then not all arena files can be loaded in the game.


#7

Ah, now I understand! Thank you very much for taking the time to type up those foolproof instructions.

I got this result, confirming that I am indeed over the limit:

143 142 2163

Is there any chance a future version of ioquake3 could raise this limit? Or is it one of those things that are hard-coded (if that’s the correct term) and/or far more of a hassle to change than it’s worth?

In any case, thank you very much for your help in clearing up the mystery, and for teaching me something in the process.

And sorry for having taken so long to respond to your last post; it’s been a busy few days on my end.


#8

Yeah, it’s easy to increase it in the mod code (UI QVM/DLL). I’ve increased the limit to 4096 bytes, about 273 .arena files. The test build should be updated in about an hour.


#9

Thank you so much!

Things are still a little insane on my end with no time for playing, but I look forward to trying out the test build once I have a moment of relative calm. :slight_smile: