mickael9 / ioq3

This is an up-to-date fork of ioquake3 for UrbanTerror with changes from the ioUrbanTerror engine
GNU General Public License v2.0
42 stars 18 forks source link
ioquake3 urbanterror

ioquake 3 for UrbanTerror

Build Status

Download prebuilt binaries for Linux/macOS/Windows

This project is an initiative to backport the relevant ioUrbanTerror-specific features to an up-to-date ioquake3.

This brings all of the ioquake3 features to UrbanTerror:

And a lot of other things, see the ioquake3 README

New features

Those are the features that are specific to this build.

No more map conflicts!

This build includes a few features to address the map conflict issues that can be encountered when playing Urban Terror.

If you have a lot of third-party maps in your download folder and tried to play in single player, you might have noticed some issues, like say the SR8 being different in aspect, or different sounds, invalid textures, etc.

This is caused by the way quake3 search path works: when a file is requested, it goes through the quake3 search path until the file is found, so a file that exists higher in the search path will always "shadow" lower priority files. Since there is no concept of "map file", you can have situations where a resource exists in the map pk3 but gets picked from another pk3. Some maps also like to override default resources (like weapon models, flags, sounds, etc.)

fs_reorderPaks cvar

When set to 1 (the default), this will reorder the pk3s in the search path so that the pk3 containing the loaded map comes first, then the high priority paks (starting with z) and finally everything else.

This way:

This cvar works on clients and servers :

sv_extraPure and sv_extraPaks

When set to 1, this will make the server "extra pure". The loaded paks list sent to clients will be reduced to include only the core game paks as well as the referenced paks (ie the map pk3). The main use for this is if you have so many loaded paks that the server can't work in pure mode (because the list of loaded paks is too big to fit in the server info string).

This also means that no paks other than the map pak will be loaded by clients, disabling usage of, for instance, funstuff. This can be solved by setting the sv_extraPaks cvar to a space-separated list of pk3 names that you don't want to exclude from the search path

Warning: Setting this has an undesirable side-effect for clients. The voting UI for map changes will not display custom maps (unless they're whitelisted in sv_extraPaks).

fs_lowPriorityDownloads

When set to 1 (the default), this puts the maps in the download folder at a lower priority than anything else.

fs_defaultHomePath cvar

This new cvar is similar to the ioUrbanTerror use_defaultHomePath cvar and controls the default value for the fs_homepath cvar (which specifies where the writable data such as map downloads and configs will be written).

Possible values are:

Improved sv_cheats

The sv_cheatMode server cvar was added to allow enabling cheats without having to use the devmap command.

When set to 1, cheats will be enabled only for the next map (can be set in mapcycle.txt).

When set to 2, cheats will be enabled for every map.

Example mapcycle.txt:

ut4_abbey
{
    sv_cheatMode 1 // cheats for abbey only (automatically resets to 0)
}
ut4_turnpike
{
    // no cheats
}

cmdline.txt

Some cvars can exclusively be set from the command line arguments which makes customization harder because it requires creating wrapper scripts.

To make things easier, command line arguments will also be loaded from the cmdline.txt file from the following locations (in that order):

This can be used, to, for instance, create a portable version that stores all of its data in the same directory as the executable:

set fs_defaultHomePath 2 // Use the executable directory as the home path

Another use for this is to set whether your server will be visible to the internet or only to your LAN using the dedicated cvar and to execute the server.cfg file:

set dedicated 2 // Make the server visible to the internet
exec server.cfg // Start server with the specified config file

Impoved keyboard handling

New SkeetShoot mode

Start a server in FFA (g_gametype 0) with a SkeetShoot map from 2014 or later.

Other changes

Security fixes

Feature parity status with original ioUrbanTerror

Common

Client

Server

This list is likely incomplete. Please let me know if I forgot anything!