Compare commits

..

22 Commits

Author SHA1 Message Date
fanyx a8492ad00b bump: 2.2.0 2024-06-26 12:29:48 +02:00
fanyx 1306a477e9 Default blacklist to use only jfreu.plugin.php 2024-06-26 12:26:35 +02:00
fanyx 86287db9ab Add VALIDATION_KEY to environment 2024-06-26 12:26:35 +02:00
fanyx eb3d051cc7 Try to determine WAN IP via ipify.org 2024-06-26 12:26:35 +02:00
fanyx 519e1946ca Changes to custom playlist parsing
Disable custom playlists by default
Guide on how to enable persistent playlist.xml usage
2022-12-24 13:40:42 +01:00
fanyx e53bee942c Bump image tag to 2.1.0 2022-12-21 12:40:45 +01:00
fanyx b9d274cc2d Add default .env-files 2022-07-21 16:21:25 +02:00
fanyx d408522060 Add TCP port and missing xaseco default configs 2022-06-28 10:43:58 +02:00
fanyx c43f155ae2 rasp.settings.php needs to be in root folder 2022-06-27 10:48:03 +02:00
fanyx f6bda80b82 force take ownership of runtime directories 2022-06-27 09:50:48 +02:00
fanyx ca37bd4089 Bump version to 2.0.5 2022-06-27 09:30:54 +02:00
fanyx 99291b696f Set defaults for some environment variables
Some beautification

Add TrackmaniaServer

i guess i lost the one file that this project is based around
impressive...

Update to fanyx/tmserver:2.0.2

Recover GameData files

Move config plugins to include

Remove obsolete plugin files

Fix broken variable substitutions

Make Packmask configurable
2022-06-27 09:29:34 +02:00
fanyx 2836dfbeba Add custom playlist mount 2022-06-26 19:36:36 +02:00
fanyx 8318d12973 Add README.md 2022-06-26 19:36:10 +02:00
fanyx fcf04ef651 Rework image to use s6-overlay to run TMServer and Xaseco
- Adds S6-Overlay
- Bundles Xaseco into the image
2022-06-26 18:06:29 +02:00
fanyx 6ff45af1cb New specification 2022-06-26 18:06:19 +02:00
fanyx f1b87b46b3 Add backup SQL files
Not needed due to patches done to plugin.localdatabase.php in the past.
2022-06-26 18:05:50 +02:00
fanyx 8cd2157816 Add Xaseco scripts 2022-06-26 18:05:50 +02:00
fanyx e5ec30e564 Add Xaseco as s6-rc service 2022-06-26 18:05:50 +02:00
fanyx ffaeb8a8dc Add Xaseco base files 2022-06-26 18:05:50 +02:00
fanyx 53f162c802 Rework Trackmania server 2022-06-26 18:05:50 +02:00
fanyx d6eb6e7ad9 Clean up environment 2022-06-26 18:05:47 +02:00
54 changed files with 414 additions and 2071 deletions

View File

@ -1,6 +0,0 @@
/docker-compose.yml
/.git/
/.gitignore
/LICENSE
/README.md
/TODO.md

46
.env-example Normal file
View File

@ -0,0 +1,46 @@
# TMSERVER
SERVER_LOGIN=<Dedicated Server Login>
SERVER_LOGIN_PASSWORD=
VALIDATION_KEY=
SERVER_SA_PASSWORD=
SERVER_ADM_PASSWORD=
SERVER_PORT=2350
SERVER_P2P_PORT=3450
SERVER_NAME=Trackmania Server
SERVER_COMMENT=This is a Trackmania Server
SERVER_PASSWORD=
HIDE_SERVER=0
MAX_PLAYERS=32
PACKMASK=stadium
GAMEMODE=1
CHATTIME=10000
FINISHTIMEOUT=1
DISABLERESPAWN=0
ROUNDS_POINTSLIMIT=30
TIMEATTACK_LIMIT=180000
TEAM_POINTSLIMIT=50
TEAM_MAXPOINTS=6
LAPS_NBLAPS=5
LAPS_TIMELIMIT=0
CUP_POINTSLIMIT=100
CUP_ROUNDSPERCHALLENGE=5
CUP_NBWINNERS=3
CUP_WARMUPDURATION=2
CUSTOM_PLAYLIST=
# XASECO
MASTERADMIN_LOGIN=<Your Login>
MYSQL_HOST=db
MYSQL_LOGIN=trackmania
MYSQL_DATABASE=trackmania
MYSQL_PASSWORD=

4
.env-mysql-example Normal file
View File

@ -0,0 +1,4 @@
MYSQL_ROOT_PASSWORD=
MYSQL_DATABASE=trackmania
MYSQL_USER=trackmania
MYSQL_PASSWORD=

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
.gitignore
/.tmp
.env
.env-mysql
.env-mysql

215
README.md
View File

@ -1,103 +1,155 @@
# docker-tmserver
Docker image for simple or customizable Trackmania Nations Forever server
Docker image for simple or customizable Trackmania Nations/United Forever server
bundled with XAseco.
## How to use this image
`docker run -e {required environment variables} -p {selected ports} fanyx/tmserver`
### There are several required environment variables that you need to set:
### docker run
`docker run --env-file <path/to/env-file> -p 2350/2350:udp -p 3450/3450:udp [-v {volumes}] fanyx/tmserver`
### docker-compose
Check the default [`docker-compose.yml`](./docker-compose.yml) to familiarize yourself
with a possible setup. Adjust it to your needs and according to the documentation below,
then run
`docker-compose up -d`
## Configuration - Trackmania
### Mandatory
```
- $SERVER_LOGIN | Server account login
- $SERVER_LOGIN_PASSWORD | Server account password
- SERVER_LOGIN | Server account login
- SERVER_LOGIN_PASSWORD | Server account password
```
### Optional
### Optional environment variables are:
```
- $SERVER_PORT | Port for server communications -> Default : 2350
- $SERVER_P2P_PORT | Port for peer2peer communication -> Default : 3450
- $SERVER_SA_PASSWORD | Password for SuperAdmin credential -> when left empty will be randomly generated
- $SERVER_ADM_PASSWORD | Password for Admin credential -> when left empty will be randomly generated
- $SERVER_NAME | Server name in ingame browser -> Default : "Trackmania Server"
- $SERVER_COMMENT | Server description -> Default : "This is a Trackmania Server"
- $SERVER_PASSWORD | If you want to secure your server against unwanted logins, set a server password
- SERVER_SA_PASSWORD | Password for SuperAdmin credential
-> when left empty will be randomly generated
- SERVER_ADM_PASSWORD | Password for Admin credential
-> when left empty will be randomly generated
- SERVER_PORT | Port for server communications -> Default : 2350
- SERVER_P2P_PORT | Port for peer2peer communication -> Default : 3450
- SERVER_NAME | Server name in ingame browser -> Default : "Trackmania Server"
- SERVER_COMMENT | Server description -> Default : "This is a Trackmania Server"
- SERVER_PASSWORD | If you want to secure your server against
unwanted logins, set a server password
- HIDE_SERVER | Whether you want your server public or not -> Default : 0 (public)
- MAX_PLAYERS | Max player count -> Default : 32
- PACKMASK | Leave empty to change server mode to United -> Default : stadium
(Nations)
```
### Gamemodes
## Running this image with `docker-compose`
I have a default [`docker-compose.yml`](./docker-compose.yml) included in this repository.
You can adjust this file to your needs but running with docker-compose is more comfortable in general.
## Configuring the Trackmania server
Without manual configuration the server launches with Nadeo's default config.
This means round based driving.
Other configuration options are listed below:
```
- $GAMEMODE | 0 (Rounds), 1 (TimeAttack), 2 (Team), 3 (Laps), 4 (Stunts) -> Default : 1
- $CHATTIME | chat time value in milliseconds -> Default : 10000
- $FINISHTIMEOUT | finish timeout value in milliseconds. 0 means classic, 1 means adaptive -> Default : 1
- $DISABLERESPAWN | 0 (respawns enabled), 1 (respawns disabled) -> Default : 0
- GAMEMODE | 0 (Rounds), 1 (TimeAttack), 2 (Team), 3 (Laps), 4 (Stunts) -> Default : 1
- CHATTIME | Chat time value in milliseconds -> Default : 10000
- FINISHTIMEOUT | Finish timeout value in milliseconds.
0 = classic, 1 = adaptive -> Default : 1
- DISABLERESPAWN | 0 (respawns enabled), 1 (respawns disabled) -> Default : 0
```
#### Gamemode : Rounds
```
- $ROUNDS_POINTSLIMIT | points limit for rounds mode -> Default : 30
```
```
- ROUNDS_POINTSLIMIT | Points limit for rounds mode -> Default : 30
```
#### Gamemode : TimeAttack
```
- $TIMEATTACK_LIMIT | time limit in milliseconds for time attack mode -> Default : 180000
```
```
- TIMEATTACK_LIMIT | Time limit in milliseconds for time attack mode -> Default : 180000
```
#### Gamemode : Team
```
- $TEAM_POINTSLIMIT | points limit for team mode -> Default : 50
- $TEAM_MAXPOINTS | number of maximum points per round for team mode -> Default : 6
```
```
- TEAM_POINTSLIMIT | Points limit for team mode -> Default : 50
- TEAM_MAXPOINTS | Number of maximum points per round for team mode -> Default : 6
```
#### Gamemode : Laps
```
- $LAPS_NBLAPS | number of laps for laps mode -> Default : 5
- $LAPS_TIMELIMIT | time limit in milliseconds for laps mode -> Default : 0
- LAPS_NBLAPS | Number of laps for laps mode -> Default : 5
- LAPS_TIMELIMIT | Time limit in milliseconds for laps mode -> Default : 0
```
#### Gamemode : Cup
### Running custom tracks
While the Nadeo tracks are available in this repository and accessible under `GameData/Tracks/Challenges/Nadeo/` you can also run custom tracks following the instructions below.
```
- CUP_POINTSLIMIT | Points limit for cup mode -> Default : 100
- CUP_ROUNDSPERCHALLENGE | Rounds per challenge -> Default : 5
- CUP_NBWINNERS | Number of Winners -> Default : 3
- CUP_WARMUPDURATION | Warmup duration -> Default : 2
```
You can run custom tracks by mounting a volume from where your tracks are stored to `/opt/tmserver/GameData/Tracks/Custom`.
## Configuration - XAseco
In this example i am storing my tracks in `./tracks` relative to the docker-compose file.
I've taken the freedom to ease the MySQL configuration a bit.
Other plugins still need to be configured fully.
Acquire the necessary files and follow the guide to custom configurations below.
### Mandatory
```
- MASTERADMIN_LOGIN | Login name of the player to assume MasterAdmin role for XAseco
```
### MySQL
```
- MYSQL_HOST | Host of MySQL database -> Default : db
- MYSQL_LOGIN | Username of MySQL database -> Default : trackmania
- MYSQL_PASSWORD (Mandatory) | Password of MySQL user
- MYSQL_DATABASE | Name of MySQL database -> Default : trackmania
```
## Customization
Apart from the configuration possibilities, I've included some scripts to add custom tracks, tracklist, configuration files, plugins and a blacklist to disable unwanted default plugins.
### Custom Tracks
While the Nadeo tracks are available in this repository and accessible under `GameData/Tracks/Challenges/Nadeo/`,
adding custom tracks from e.g. [Trackmania Exchange](https://tmuf.exchange/) is as simple as placing the files
in the `tracks/` folder and mounting it to `/var/lib/tmserver/GameData/Tracks/Custom/`.
```
[...]
tmserver:
image: fanyx/tmserver:latest
image: fanyx/tmserver
[...]
volumes:
- ./tracks:/opt/tmserver/GameData/Tracks/Custom
- ./tracks:/var/lib/tmserver/GameData/Tracks/Custom
[...]
```
### Custom Playlist
### Running a custom playlist
You can add tracks to a playlist in a simple way.
Create a plaintext file like in the example below and mount it to `/var/lib/tmserver/playlist.txt`.
To enable parsing of this file set `CUSTOM_PLAYLIST` in your env-file to anything but an empty string.
You can add tracks to a playlist in a simple way. Just provide a `playlist.txt` that contains every track in a certain format. Create a folder next to your `docker-compose.yml`, mount it as a volume to `/opt/tmserver/playlist` and put the `playlist.txt` in there.
The tracks for the server are stored relative to `/opt/tmserver/GameData/Tracks`. Creating your own playlist is as easy as specifying each track on a separate line in the `playlist.txt` adressed by its relative path to the `Tracks` folder.
The tracks for the server are stored relative to `/var/lib/tmserver/GameData/Tracks`.
Creating your own playlist is as easy as specifying each track on a separate line in the `playlist.txt`
by its relative path to the `Tracks` folder.
#### Example:
Folder structure:
```
|--> docker-compose.yml
|--> ./tracks
|--> mini01.Challenge.Gbx
`--> SpeedxZxZ.Challenge.Gbx
|--> ./db-data
`--> ./playlist
`--> playlist.txt
`--> ./playlist.txt
```
playlist.txt :
@ -106,3 +158,64 @@ Challenges/Nadeo/C01-Race.Challenge.Gbx
Custom/mini01.Challenge.Gbx
Custom/SpeedxZxZ.Challenge.Gbx
```
---
**NOTE**
When mounting your own `playlist.xml` file to the container you overwrite a lot of
customization options that usually would be parsed from environment variables.
```xml
<gameinfos>
<game_mode>@GAMEMODE@</game_mode>
<chat_time>@CHATTIME@</chat_time>
<finishtimeout>@FINISHTIMEOUT@</finishtimeout>
<disablerespawn>@DISABLERESPAWN@</disablerespawn>
<rounds_pointslimit>@ROUNDS_POINTSLIMIT@</rounds_pointslimit>
<team_pointslimit>@TEAM_POINTSLIMIT@</team_pointslimit>
<team_maxpoints>@TEAM_MAXPOINTS@</team_maxpoints>
<timeattack_limit>@TIMEATTACK_LIMIT@</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>@LAPS_NBLAPS@</laps_nblaps>
<laps_timelimit>@LAPS_TIMELIMIT@</laps_timelimit>
<cup_pointslimit>@CUP_POINTSLIMIT@</cup_pointslimit>
<cup_roundsperchallenge>@CUP_ROUNDSPERCHALLENGE@</cup_roundsperchallenge>
<cup_nbwinners>@CUP_NBWINNERS@</cup_nbwinners>
<cup_warmupduration>@CUP_WARMUPDURATION@</cup_warmupduration>
</gameinfos>
```
If you're familiar with these options anyway, you can mount `playlist.xml` to
`/var/lib/tmserver/GameData/MatchSettings/playlist.xml` and use it as a complete
and persistent configuration file that can be written to by plugins or external tools
like RemoteCP.
---
### Custom configuration files
Most plugins need you to provide valid configuration files to function in the first place.
Place these in a folder e.g. `config/` and mount it to `/var/lib/xaseco/config/`.
All files will be linked to XAseco's root folder.
Careful, this will overwrite exisiting default files and `localdatabase.xml` as well.
### Custom plugins
Custom plugins work similar to configuration files.
Create a folder like `plugins/` and mount it to `/var/lib/xaseco/plugins/custom/`.
They will be linked down to the plugins folder.
### Plugin blacklist
Create a file called `blacklist` and list plugins by filename that you want ignored on
XAseco's boot.
Mount this file at `/var/lib/xaseco/blacklist`.
blacklist:
```
jfreu.chat.php
jfreu.plugin.php
```
would disable jfreu's plugins but leave all others enabled.

View File

@ -1,7 +1,6 @@
version: '3.8'
services:
tmserver:
image: fanyx/tmserver:2.0.0
image: fanyx/tmserver:2.2.0
container_name: trackmania_tmserver
depends_on:
- db
@ -9,10 +8,12 @@ services:
env_file: .env
volumes:
- ./tracks:/var/lib/tmserver/GameData/Tracks/Challenges/Custom # => Custom tracks
- ./playlist.txt:/var/lib/tmserver/playlist.txt # => Custom playlist
- ./blacklist:/var/lib/xaseco/blacklist # => Plugin blacklist
- ./plugins:/var/lib/xaseco/plugins/custom # => Custom plugins
- ./config:/var/lib/xaseco/config # => Custom configuration files
ports:
- "2350:2350"
- "2350:2350/udp"
- "3450:3450/udp"
db:

View File

@ -2,7 +2,9 @@
set -e
[[ "$(id -u)" == 0 ]] && s6-setuidgid trackmania "$0"
[[ "$(id -u)" == 0 ]] && \
chown -R trackmania:trackmania /var/lib/xaseco && \
s6-setuidgid trackmania "$0"
cd /var/lib/xaseco

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<blacklist>
<!-- format:
<player>
<login></login>
</player>
-->
</blacklist>

View File

@ -1,3 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<cache version=4.0>
</cache>

View File

@ -15,13 +15,13 @@
<password>User</password>
</level>
</authorization_levels>
<masterserver_account>
<login>@SERVER_LOGIN@</login>
<password>@SERVER_LOGIN_PASSWORD@</password>
<validation_key>@VALIDATION_KEY@</validation_key>
</masterserver_account>
<server_options>
<name>@SERVER_NAME@</name>
<comment>@SERVER_COMMENT@</comment>
@ -29,17 +29,17 @@
<max_players>@MAX_PLAYERS@</max_players>
<password>@SERVER_PASSWORD@</password>
<max_spectators>32</max_spectators>
<password_spectator></password_spectator>
<ladder_mode>forced</ladder_mode> <!-- value between 'inactive', 'forced' (or '0', '1') -->
<ladder_serverlimit_min>0</ladder_serverlimit_min> <!-- Those values will be clamped to the limits authorized on http://official.trackmania.com/tmf-ladderserver/ -->
<ladder_serverlimit_max>50000</ladder_serverlimit_max>
<ladder_serverlimit_max>50000</ladder_serverlimit_max>
<enable_p2p_upload>True</enable_p2p_upload>
<enable_p2p_download>True</enable_p2p_download>
<callvote_timeout>60000</callvote_timeout>
<callvote_ratio>0.5</callvote_ratio> <!-- default ratio. value in [0..1], or -1 to forbid. -->
<callvote_ratios>
@ -56,28 +56,28 @@
<use_changing_validation_seed>False</use_changing_validation_seed>
</server_options>
<system_config>
<connection_uploadrate>512</connection_uploadrate> <!-- Kbps (kilo bits per second) -->
<connection_downloadrate>8192</connection_downloadrate> <!-- Kbps -->
<force_ip_address></force_ip_address>
<server_port>$SERVER_PORT</server_port>
<server_p2p_port>$SERVER_P2P_PORT</server_p2p_port>
<force_ip_address>@FORCE_IP_ADDRESS@</force_ip_address>
<server_port>@SERVER_PORT@</server_port>
<server_p2p_port>@SERVER_P2P_PORT@</server_p2p_port>
<client_port>0</client_port>
<bind_ip_address></bind_ip_address>
<use_nat_upnp></use_nat_upnp>
<p2p_cache_size>600</p2p_cache_size>
<xmlrpc_port>5000</xmlrpc_port>
<xmlrpc_allowremote>True</xmlrpc_allowremote> <!-- If you specify an ip adress here, it'll be the only accepted adress. this will improve security. -->
<blacklist_url></blacklist_url>
<guestlist_filename></guestlist_filename>
<blacklist_filename></blacklist_filename>
<packmask>stadium</packmask>
<packmask>@PACKMASK@</packmask>
<allow_spectator_relays>False</allow_spectator_relays>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<guestlist>
<!-- format
<player>
<login></login>
</player>
-->
</guestlist>

Binary file not shown.

Binary file not shown.

View File

@ -1,105 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>27</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\Nations\Blue\C01-Race.Challenge.Gbx</file>
<ident>eDgWjoKe2dT3GfoTCGCmI_qMvfk</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C02-Race.Challenge.Gbx</file>
<ident>hlRjJEZGm0yr1sT91CtdIwmqsti</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C03-Acrobatic.Challenge.Gbx</file>
<ident>c4oQLgleEPkNtehypwdYXTkmVvi</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C04-Race.Challenge.Gbx</file>
<ident>yWy7ROt2lgk2zL44HKdBgUjuthi</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C05-Endurance.Challenge.Gbx</file>
<ident>UR7xWwTkMeFB2kqVLVVOGDBCKFb</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C06-Speed.Challenge.Gbx</file>
<ident>fwj7Gn1nSQ_8qx6MPUtzAfHngTj</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C07-Race.Challenge.Gbx</file>
<ident>PLVn84D8NoVGjidP1pLafZP8qA8</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C08-Obstacle.Challenge.Gbx</file>
<ident>Hb_oIOr6Y4_I3aoMogsTPufz8hl</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C09-Race.Challenge.Gbx</file>
<ident>9MOwoNkpYZhw8e99cxFI3hVZrvi</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C10-Acrobatic.Challenge.Gbx</file>
<ident>XYiTfAdultrTWVJpjl_Bdnf7x4l</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C11-Race.Challenge.Gbx</file>
<ident>npRjhClGPZMs_YK_T5yUrnWY0q9</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C12-Obstacle.Challenge.Gbx</file>
<ident>znbgMZayw8uBByLWqc6kYsEfG6l</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C13-Race.Challenge.Gbx</file>
<ident>qxHe8iBNC2soNhkOoOvEKDkxZ58</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C14-Endurance.Challenge.Gbx</file>
<ident>uuGCAivChymPBU6TAHp6qIKSoR4</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Blue\C15-Speed.Challenge.Gbx</file>
<ident>n4QZfCzSzwMxsY2ILHFUEEipjtg</ident>
</challenge>
</playlist>

View File

@ -1,105 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>17</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\Nations\Green\B01-Race.Challenge.Gbx</file>
<ident>8oDWqaNMXpyFg6e_QUb07Wzpkk3</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B02-Race.Challenge.Gbx</file>
<ident>b4ubJL0Aayrg7aqhe0RwI4jBQR1</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B03-Race.Challenge.Gbx</file>
<ident>HIH70OwdsvC7ZX_oKOWhwqDITx2</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B04-Acrobatic.Challenge.Gbx</file>
<ident>OfPhGxBSu5zHgl3GsndJGGens8k</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B05-Race.Challenge.Gbx</file>
<ident>R2W9o_MsXRP2PNp46stzmMWkgHb</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B06-Obstacle.Challenge.Gbx</file>
<ident>SZHG1tFsmJLJInUsruGgREWsFq1</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B07-Race.Challenge.Gbx</file>
<ident>NdajMtuuXvuxhfGkye4Om8wUXYi</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B08-Endurance.Challenge.Gbx</file>
<ident>u8RcNHvafbeKfHcNvgye0uq_jpb</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B09-Acrobatic.Challenge.Gbx</file>
<ident>t6kPFNQiJTm3rFqjGRGHBxwZOkd</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B10-Speed.Challenge.Gbx</file>
<ident>o7StLUfi3bsutUxdOjQgsOO6p_m</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B11-Race.Challenge.Gbx</file>
<ident>RVEoquUninLI8FqVo_ZCo4lr5X9</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B12-Race.Challenge.Gbx</file>
<ident>p4PhXsVTp7NhVmhSLZXeJjrFahe</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B13-Obstacle.Challenge.Gbx</file>
<ident>NxUOXF2VDOHaOyrYlD9p81Gnfp3</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B14-Speed.Challenge.Gbx</file>
<ident>bx9QX_lcEZ0IIGKXeYOw3lWqBXh</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Green\B15-Race.Challenge.Gbx</file>
<ident>X_uZrnyHg_3HuqP9oWEkg2pNh5c</ident>
</challenge>
</playlist>

View File

@ -1,105 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>37</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\Nations\Red\D01-endurance.Challenge.Gbx</file>
<ident>E0ZXX6DbQ1wZXMiLYW77zgjFcB9</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D02-Race.Challenge.Gbx</file>
<ident>r7OqCgR3yODNwmJcPGyUafJKRAh</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D03-Acrobatic.Challenge.Gbx</file>
<ident>KvPlXufFJaLjDGSRP1rcregOaX3</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D04-Race.Challenge.Gbx</file>
<ident>h1doGRJ46hAGF3AeCJPsPHE_Vb2</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D05-Race.Challenge.Gbx</file>
<ident>iDnUBYbFhfD0QIPmIyRvy1UIw_0</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D06-Obstacle.Challenge.Gbx</file>
<ident>Twnk9iISEER4KYGY8bfPffK5BU5</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D07-Race.Challenge.Gbx</file>
<ident>bRZJ7Wn3QyftteDpbnIYlrcEqp9</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D08-Speed.Challenge.Gbx</file>
<ident>RgXELEylfSWdjQG_XiiTFVkYi99</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D09-obstacle.Challenge.Gbx</file>
<ident>ka5WLGb0IrqZ1L7fVb6dXHNTWF0</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D10-Race.Challenge.Gbx</file>
<ident>icDiiqPi3EljXk49VJ6WUl0LQzb</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D11-Acrobatic.Challenge.Gbx</file>
<ident>yQULZVxaNxr7tFlNXr9SdOVA6l3</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D12-Speed.Challenge.Gbx</file>
<ident>DceckSvMpluYYGHaEeALei6A4tf</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D13-Race.Challenge.Gbx</file>
<ident>Nk8jftxeWaIICIOEGV8M_cV3gba</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D14-Endurance.Challenge.Gbx</file>
<ident>vIIX52BcNOt86BJ1NrZq6_bJir5</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\Red\D15-Endurance.Challenge.Gbx</file>
<ident>q9ETZ0R5yClf_9wDxsPI41gO6V6</ident>
</challenge>
</playlist>

View File

@ -1,105 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>7</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\Nations\White\A01-Race.Challenge.Gbx</file>
<ident>BeySZdnfuSh4nHY5xztiXLmlrXe</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A02-Race.Challenge.Gbx</file>
<ident>JwKdDsOUh4L9_eYyRsdiA2o1fW1</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A03-Race.Challenge.Gbx</file>
<ident>mWxQhvvPOoNfPaq18j3dokLqyO7</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A04-Acrobatic.Challenge.Gbx</file>
<ident>SEHmwPJVBl3NpHS56w6Sirac2Ic</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A05-Race.Challenge.Gbx</file>
<ident>I7rI7jAga6C4tGAe5OTDoyLF2fh</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A06-Obstacle.Challenge.Gbx</file>
<ident>syko1DvAxleoVlqMsc1sJzqbt66</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A07-Race.Challenge.Gbx</file>
<ident>KzeBzLOI62lxu3haZCPFn_4BfD6</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A08-Endurance.Challenge.Gbx</file>
<ident>KDBPTuNkrZG6jMxuRqmDBbLjfp6</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A09-Race.Challenge.Gbx</file>
<ident>TteOqSjrhVsdjZYAaLuGBWX2a4c</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A10-Acrobatic.Challenge.Gbx</file>
<ident>jH8X3qPtpn6pj3dLAaq08pyDdp1</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A11-Race.Challenge.Gbx</file>
<ident>N0CpLabOm8Kk6Lsf0kwelgHiMQm</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A12-Speed.Challenge.Gbx</file>
<ident>zwAbNlFSDcXjRBk0YSMyxc5kJJ8</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A13-Race.Challenge.Gbx</file>
<ident>K27AW3HYV47qqqXentunIoUERu8</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A14-Race.Challenge.Gbx</file>
<ident>6ktPCqLADXXuy5LaOLTzktaGlKf</ident>
</challenge>
<challenge>
<file>Campaigns\Nations\White\A15-Speed.Challenge.Gbx</file>
<ident>dJQvN8hB18o3SXNl897MOShzZQ5</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>240000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>240000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>24</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Bay\Blue\BayC1.Challenge.Gbx</file>
<ident>xnVb_5H4zM7LrTmwlqSu7I89WIm</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Blue\BayC2.Challenge.Gbx</file>
<ident>8l4cVTumajf1li2xZDF3QyfRGQ9</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Blue\BayC3.Challenge.Gbx</file>
<ident>jJvxTMLeMW4JxWSTQsoS2ksxCBd</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Blue\BayC4.Challenge.Gbx</file>
<ident>BEVHXBWkNy4Fd7SukIPneaNhMwf</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Blue\BayC5.Challenge.Gbx</file>
<ident>SWHPkY4p7qEBMS11Wwh551OnyCj</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>180000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>14</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Bay\Green\BayB1.Challenge.Gbx</file>
<ident>TSuQuXG8raQHgXVnNEpUZozYET1</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Green\BayB2.Challenge.Gbx</file>
<ident>GlFei54b57sePj9a4uB7hGxtQfi</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Green\BayB3.Challenge.Gbx</file>
<ident>UMbXb6QFLSK7htbk1wFeUIwq113</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Green\BayB4.Challenge.Gbx</file>
<ident>CiC_mlGNS7sEVGFcFppEskFn8of</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Green\BayB5.Challenge.Gbx</file>
<ident>qtW6yA7T424zfXZifFRVN3HD2om</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>300000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>300000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>34</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Bay\Red\BayD1.Challenge.Gbx</file>
<ident>iAMrEREtlhtVQlsGNYdAD0uU3P8</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Red\BayD2.Challenge.Gbx</file>
<ident>sfe9vjSKIyMyt21Ye1US9fO3d2f</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Red\BayD3.Challenge.Gbx</file>
<ident>gMvY9waBx_B9YPu7zWQIBTKWG5l</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Red\BayD4.Challenge.Gbx</file>
<ident>DxIxSLl1P8K2dO9DUEvU4KPqrz5</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\Red\BayD5.Challenge.Gbx</file>
<ident>RJHi5c19gnBFZIdz1GLLOXHYobi</ident>
</challenge>
</playlist>

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>4</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\United\Race\Bay\White\BayA1.Challenge.Gbx</file>
<ident>KK8GilfJAgzqG_NFkyls9TAGiO3</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\White\BayA2.Challenge.Gbx</file>
<ident>6buhcEyIPyS_xoKlt8OQKiGjY5k</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\White\BayA3.Challenge.Gbx</file>
<ident>CyBlWFIdSwLZRmUOc0NOCcO_nQ9</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\White\BayA4.Challenge.Gbx</file>
<ident>owjlOUpiUQ3FqK16PNGAOUrT5x9</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Bay\White\BayA5.Challenge.Gbx</file>
<ident>drNAv9wcBw_ZISm84dtDjF1qJl5</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>240000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>240000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>25</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Coast\Blue\CoastC1.Challenge.Gbx</file>
<ident>GeY0_507YZXNhgEQfhYI7i_aCLd</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Blue\CoastC2.Challenge.Gbx</file>
<ident>A2NzvnUxz0wb4gmqZtv67lw9SM3</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Blue\CoastC3.Challenge.Gbx</file>
<ident>NvVnDYzN6enW1XTeDNObyTw4TWe</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Blue\CoastC4.Challenge.Gbx</file>
<ident>3La8ljzEpqE3uTnTaA4VBHn9xP3</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Blue\CoastC5.Challenge.Gbx</file>
<ident>oYCwfKgUWfhx0ZiT3H0zp78Csf8</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>180000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>15</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Coast\Green\CoastB1.Challenge.Gbx</file>
<ident>fLRpPpLnhinpKmtaUaC00jQ5e5e</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Green\CoastB2.Challenge.Gbx</file>
<ident>Tqp8shDKD9YxdZpd_mGI387ysN9</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Green\CoastB3.Challenge.Gbx</file>
<ident>vAp79h7b9B49CUKl1RPJH4u6dY6</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Green\CoastB4.Challenge.Gbx</file>
<ident>7mZGrks3D3ZG_likA2X25_v2bb4</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Green\CoastB5.Challenge.Gbx</file>
<ident>XcbwzBasWroMvTUMoGfWEZZXnvc</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>300000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>300000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>35</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Coast\Red\CoastD1.Challenge.Gbx</file>
<ident>M_41NAd0ZJ7rZGdAyilpaA_l84c</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Red\CoastD2.Challenge.Gbx</file>
<ident>zgHD7z4InE2dnZuMUu5ZiZ6TJOh</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Red\CoastD3.Challenge.Gbx</file>
<ident>ElhoPK8FejcTArBcbzzhROSCm9</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Red\CoastD4.Challenge.Gbx</file>
<ident>xiWyJq6r22r_a3XDLOHabPPuRN1</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\Red\CoastD5.Challenge.Gbx</file>
<ident>zsGreGIjoEJioRna4Ca2LnVffL7</ident>
</challenge>
</playlist>

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>5</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\United\Race\Coast\White\CoastA1.Challenge.Gbx</file>
<ident>Q5O8JTSrfBj_Sho4UEppipNn1lm</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\White\CoastA2.Challenge.Gbx</file>
<ident>sHrP4F_Hft__4t7Lxn3KGNApRBf</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\White\CoastA3.Challenge.Gbx</file>
<ident>BIhWR1XVwqtBYsdBXfazoK0zGU</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\White\CoastA4.Challenge.Gbx</file>
<ident>pq8JuF3BUsitoTundl5RYn8wEPk</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Coast\White\CoastA5.Challenge.Gbx</file>
<ident>eG13RWHwWYtEMXSSreS6zr6vDH2</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>240000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>240000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>22</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Desert\Blue\DesertC1.Challenge.Gbx</file>
<ident>8SebSPNUFIajLWymNFZHZkW2Xnh</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Blue\DesertC2.Challenge.Gbx</file>
<ident>IGfT1x5wHxLcPyfntC5moemN39h</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Blue\DesertC3.Challenge.Gbx</file>
<ident>RAREa_O26jy7ijEp9WjBEuXz9_d</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Blue\DesertC4.Challenge.Gbx</file>
<ident>PxxR0F6ELbXIi7tp6gxRYgWZmBf</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Blue\DesertC5.Challenge.Gbx</file>
<ident>caTwVpFAdA_PzLEpmAdPe02lg53</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>180000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>12</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Desert\Green\DesertB1.Challenge.Gbx</file>
<ident>RPJZdVvNCRcC7sNYZ0pcFzJUC0a</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Green\DesertB2.Challenge.Gbx</file>
<ident>L5XJzuLfS8eTsyDv2okLFT5EmYh</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Green\DesertB3.Challenge.Gbx</file>
<ident>pwvOUneeZupb8gXmSzxIvcQfGZj</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Green\DesertB4.Challenge.Gbx</file>
<ident>j6acnHdHyOJfeRXKiKKlRBvwPX5</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Green\DesertB5.Challenge.Gbx</file>
<ident>VeFqtdTr0cmH4KtM5mSiBzLZ3B0</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>300000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>300000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>32</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Desert\Red\DesertD1.Challenge.Gbx</file>
<ident>JD3rNOcd_zztFZUDLIRYHBw2fSi</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Red\DesertD2.Challenge.Gbx</file>
<ident>spjUHBBBwxXbmz9t28dvsg0Mjsd</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Red\DesertD3.Challenge.Gbx</file>
<ident>H5kJQMsdXjB_FUX9g6HliH872kj</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Red\DesertD4.Challenge.Gbx</file>
<ident>OyBGZZYhTTS2srBwVwR8xpB7g19</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\Red\DesertD5.Challenge.Gbx</file>
<ident>JtMRm7HqtomW8t2740PyBx3t5fk</ident>
</challenge>
</playlist>

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>2</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\United\Race\Desert\White\DesertA1.Challenge.Gbx</file>
<ident>fN8oFawm1KTGkVXFEDIcT0z1oC2</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\White\DesertA2.Challenge.Gbx</file>
<ident>ohcKygytqGuu0cbIkMyqh8EAXJ1</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\White\DesertA3.Challenge.Gbx</file>
<ident>0rJOhZ9owlrbpzdn4kuyDUzwBWd</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\White\DesertA4.Challenge.Gbx</file>
<ident>irSjbm9UWTVfcaMZm3HlLg5Gewc</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Desert\White\DesertA5.Challenge.Gbx</file>
<ident>q1N7wa2TmNz_QmG3QZfm5DMmsY</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>240000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>240000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>21</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Island\Blue\IslandC1.Challenge.Gbx</file>
<ident>rX5YyKmUiPBmyvzj34hWdrVWrK2</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Blue\IslandC2.Challenge.Gbx</file>
<ident>5RLV0JFiEknMWSoLfOP93JXoJe1</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Blue\IslandC3.Challenge.Gbx</file>
<ident>Acogr0IIF6bqJv5jjlINxw8aZp0</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Blue\IslandC4.Challenge.Gbx</file>
<ident>X6CxBL5bSBGhWXmhzLdEsiEcPSa</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Blue\IslandC5.Challenge.Gbx</file>
<ident>byoRiBrftGh9sL6SpqGpKxH2h8m</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>180000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>11</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Island\Green\IslandB1.Challenge.Gbx</file>
<ident>cNVFIz24Lp6zvxlOURjU5Hfi8hb</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Green\IslandB2.Challenge.Gbx</file>
<ident>lHQPPQZ4w7SBegPPiJCu11Tyg8m</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Green\IslandB3.Challenge.Gbx</file>
<ident>feAvIdvjrzDL8f8wBgVZzs7auSh</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Green\IslandB4.Challenge.Gbx</file>
<ident>gsBKhcmvnVITHRaTGRdnFUhTj0l</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Green\IslandB5.Challenge.Gbx</file>
<ident>bg9z0E_7QY8vwYVEQBssRBH6Knd</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>300000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>300000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>31</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Island\Red\IslandD1.Challenge.Gbx</file>
<ident>A7s5IpC7XfDWknn1PXKKBKCD2W1</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Red\IslandD2.Challenge.Gbx</file>
<ident>E7XQEP4oT4qP8NYeOn81YPYgEO5</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Red\IslandD3.Challenge.Gbx</file>
<ident>rK_OGHHTE9GdMqSpPBOqvkjleq5</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Red\IslandD4.Challenge.Gbx</file>
<ident>ST387vLgNaX4HbasZzXruPq3kzh</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\Red\IslandD5.Challenge.Gbx</file>
<ident>PTOfMzMx8Sdrk4by2lJFqf9vtJl</ident>
</challenge>
</playlist>

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>1</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\United\Race\Island\White\IslandA1.Challenge.Gbx</file>
<ident>BFLkfRWgOLoqhmFoGQmcIpMG7f3</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\White\IslandA2.Challenge.Gbx</file>
<ident>cCky5HvrsCNjBYwdAm06DGf3F1e</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\White\IslandA3.Challenge.Gbx</file>
<ident>tGOCtEIitr7u8GGshFsat_0hAZ2</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\White\IslandA4.Challenge.Gbx</file>
<ident>dMUhOtUAj1XhssvIJn5hrTEslX4</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Island\White\IslandA5.Challenge.Gbx</file>
<ident>5qigQIX0mBqHUtFQ5rHC5h5SZ47</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>240000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>240000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>23</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Rally\Blue\RallyC1.Challenge.Gbx</file>
<ident>r8BgTLVQvpc97avfjSnWFkymRcd</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Blue\RallyC2.Challenge.Gbx</file>
<ident>invHcwznN0lhX1knqKoh8NWT5Im</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Blue\RallyC3.Challenge.Gbx</file>
<ident>wbUzUoCydZTCoXv14oqOTsZmLSl</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Blue\RallyC4.Challenge.Gbx</file>
<ident>OXJ6oNACOvUHwOciVadq4awfvi3</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Blue\RallyC5.Challenge.Gbx</file>
<ident>8Sp6qCSx5GcIpyoEG7TXegPJPN4</ident>
</challenge>
</playlist>

View File

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>180000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>13</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Rally\Green\RallyB1.Challenge.Gbx</file>
<ident>6_anVkrO2thrW95MPMnMryaSMQa</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Green\RallyB2.Challenge.Gbx</file>
<ident>8IVaoPt_RUtEvKn4bwqLxIWZvK0</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Green\RallyB3.Challenge.Gbx</file>
<ident>IrF1y5XyYYHCKCXW9O3Ppm3Z2Rj</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Green\RallyB4.Challenge.Gbx</file>
<ident>FvtjVC7UGq5iukJ9RsNMs7wqKRi</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Green\RallyB5.Challenge.Gbx</file>
<ident>GvlexZR0shOTxSdgiKlYKMDo8F</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>300000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>300000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>33</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Rally\Red\RallyD1.Challenge.Gbx</file>
<ident>O8hVBuqe_BaccF_1lHx4ppFjwtc</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Red\RallyD2.Challenge.Gbx</file>
<ident>xgK3TtJnAIdaJtutIObAtLVO87l</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Red\RallyD3.Challenge.Gbx</file>
<ident>F82aQO8FVuDKGxXptO3hO0_eby8</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Red\RallyD4.Challenge.Gbx</file>
<ident>Fx99sI7vtJL_xewqzNYVV9Tp6Wd</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\Red\RallyD5.Challenge.Gbx</file>
<ident>i2cGu9Hw2EZhce2V6ELEPNWAHfd</ident>
</challenge>
</playlist>

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>3</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\United\Race\Rally\White\RallyA1.Challenge.Gbx</file>
<ident>SjKnJSYPsFPur7GiG0pIou3Q934</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\White\RallyA2.Challenge.Gbx</file>
<ident>QRoBVUTGMNIuxqK0ktZeWVmi3B9</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\White\RallyA3.Challenge.Gbx</file>
<ident>Y4fLtLANTRLAb60CaSamoKcsiUh</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\White\RallyA4.Challenge.Gbx</file>
<ident>_qHnykwSFw9fN41US14CwO6Hxb5</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Rally\White\RallyA5.Challenge.Gbx</file>
<ident>H33E9Yhc75mHQfdhIN1JD9D2Jef</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>240000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>240000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>26</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Snow\Blue\SnowC1.Challenge.Gbx</file>
<ident>iLrDjHss2EsvnWpo7u4pWqK_NGc</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Blue\SnowC2.Challenge.Gbx</file>
<ident>PMjgzPR2XKuSf_xqJGs8fESdjI7</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Blue\SnowC3.Challenge.Gbx</file>
<ident>pwVSn8op8_yKKyIVZrurBNUxk71</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Blue\SnowC4.Challenge.Gbx</file>
<ident>Vo9x9JGDFROJM8uYNRmcaBw3N54</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Blue\SnowC5.Challenge.Gbx</file>
<ident>MDBKjzABmlnjPLEwGHz5U8FLUPk</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>180000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>16</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Snow\Green\SnowB1.Challenge.Gbx</file>
<ident>yLDCGWXRY2t6AR0iyCfXrOm9iai</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Green\SnowB2.Challenge.Gbx</file>
<ident>9HahRrBoTxsV0XcodW9_vPShgIg</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Green\SnowB3.Challenge.Gbx</file>
<ident>TATIyxp9q1kHD8s2euKBksYPm07</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Green\SnowB4.Challenge.Gbx</file>
<ident>GBnhBkg8xkLdc7udoClIJQbLYu</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Green\SnowB5.Challenge.Gbx</file>
<ident>KOlYpZNGUTAevOQ7KXh5yw3LEr5</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>300000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>300000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>36</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Snow\Red\SnowD1.Challenge.Gbx</file>
<ident>cc1SDaOom8g_XB8_KtAbN1ax96e</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Red\SnowD2.Challenge.Gbx</file>
<ident>vSqn4Hur9pfZHqRpZipsXstbeAa</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Red\SnowD3.Challenge.Gbx</file>
<ident>NvKB_hLYO2yRdh1fkUlhdHuhpua</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Red\SnowD4.Challenge.Gbx</file>
<ident>DzKVX_DeyJfsl_fNAeJAmnVnzLl</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\Red\SnowD5.Challenge.Gbx</file>
<ident>lHyjPIxLIk3uV07EflGjdl81Y60</ident>
</challenge>
</playlist>

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>6</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\United\Race\Snow\White\SnowA1.Challenge.Gbx</file>
<ident>QlVUCrLbaN03PZBwhNJQyeuAevg</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\White\SnowA2.Challenge.Gbx</file>
<ident>eZoARW46f9HTlWtrNweTNUHzVba</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\White\SnowA3.Challenge.Gbx</file>
<ident>d9Vhi2RP6n5uodtvG_Xr9ELK5E1</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\White\SnowA4.Challenge.Gbx</file>
<ident>U9x197ObY3pRRnIPXU4DPaERPG9</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Snow\White\SnowA5.Challenge.Gbx</file>
<ident>ds921J29OfPhk6uzPKAu7j6DUca</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>240000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>240000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>20</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Stadium\Blue\StadiumC1.Challenge.Gbx</file>
<ident>5lSunHjU4j0twFNK7MQNP5FOp3m</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Blue\StadiumC2.Challenge.Gbx</file>
<ident>3QBb5EgTVuUNhnDrizNJmi4K4Ii</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Blue\StadiumC3.Challenge.Gbx</file>
<ident>q0ljLrLGWogdntNr85I4UrwPsLf</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Blue\StadiumC4.Challenge.Gbx</file>
<ident>3uxg8E_RaZSQezPhykAveG3tH_6</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Blue\StadiumC5.Challenge.Gbx</file>
<ident>Yv5PKpzZhwTSFpKPeitsjsgDTJ1</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>180000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>10</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Stadium\Green\StadiumB1.Challenge.Gbx</file>
<ident>AJr0WOWFNr16GgPR5gATk0FaR4c</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Green\StadiumB2.Challenge.Gbx</file>
<ident>jwkqslQXaAKq4pvLWVHGnVzPute</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Green\StadiumB3.Challenge.Gbx</file>
<ident>hm4BM_c3sqpI2qzgX2vR9acvTj4</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Green\StadiumB4.Challenge.Gbx</file>
<ident>LiSj9Js5kM4erXyCy8ez6l4cQej</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Green\StadiumB5.Challenge.Gbx</file>
<ident>dVAqPX0DEuox0R7Z3qcX4N0gvD8</ident>
</challenge>
</playlist>

View File

@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<lan_game_mode>0</lan_game_mode>
<internet_game_mode>1</internet_game_mode>
<hotseat_game_mode>0</hotseat_game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<timeattack_limit>300000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<team_pointslimit>5</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<hotseat_timeattack_limit>300000</hotseat_timeattack_limit>
<hotseat_rounds_count>5</hotseat_rounds_count>
</gameinfos>
<filter>
<is_solo>0</is_solo>
<is_hotseat>1</is_hotseat>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<sort_index>30</sort_index>
<random_map_order>0</random_map_order>
</filter>
<challenge>
<file>Campaigns\United\Race\Stadium\Red\StadiumD1.Challenge.Gbx</file>
<ident>Jy1iY548W5lQ1wUZxi4QdWcUJig</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Red\StadiumD2.Challenge.Gbx</file>
<ident>w6QxL8QkmzuC7zUeQ9lfzlGFX92</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Red\StadiumD3.Challenge.Gbx</file>
<ident>ZQu1Y0CVPbrHrXlTupqwz6F7CQi</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Red\StadiumD4.Challenge.Gbx</file>
<ident>xm4qMVhLEiq35ZyzMf6vMudIwxi</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\Red\StadiumD5.Challenge.Gbx</file>
<ident>rE2zbgLaeB7aCoSpRXqm8Q62rXk</ident>
</challenge>
</playlist>

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="utf-8" ?>
<playlist>
<gameinfos>
<game_mode>0</game_mode>
<chat_time>10000</chat_time>
<finishtimeout>1</finishtimeout>
<allwarmupduration>0</allwarmupduration>
<disablerespawn>0</disablerespawn>
<forceshowallopponents>0</forceshowallopponents>
<rounds_pointslimit>30</rounds_pointslimit>
<rounds_usenewrules>0</rounds_usenewrules>
<rounds_forcedlaps>0</rounds_forcedlaps>
<rounds_pointslimitnewrules>5</rounds_pointslimitnewrules>
<team_pointslimit>50</team_pointslimit>
<team_maxpoints>6</team_maxpoints>
<team_usenewrules>0</team_usenewrules>
<team_pointslimitnewrules>5</team_pointslimitnewrules>
<timeattack_limit>180000</timeattack_limit>
<timeattack_synchstartperiod>0</timeattack_synchstartperiod>
<laps_nblaps>5</laps_nblaps>
<laps_timelimit>0</laps_timelimit>
<cup_pointslimit>100</cup_pointslimit>
<cup_roundsperchallenge>5</cup_roundsperchallenge>
<cup_nbwinners>3</cup_nbwinners>
<cup_warmupduration>2</cup_warmupduration>
</gameinfos>
<hotseat>
<game_mode>0</game_mode>
<time_limit>300000</time_limit>
<rounds_count>5</rounds_count>
</hotseat>
<filter>
<is_lan>1</is_lan>
<is_internet>1</is_internet>
<is_solo>0</is_solo>
<is_hotseat>0</is_hotseat>
<sort_index>0</sort_index>
<random_map_order>0</random_map_order>
<force_default_gamemode>0</force_default_gamemode>
</filter>
<startindex>0</startindex>
<challenge>
<file>Campaigns\United\Race\Stadium\White\StadiumA1.Challenge.Gbx</file>
<ident>4kQ_0mHdJtnSdsQty9ZX0W8SDb1</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\White\StadiumA2.Challenge.Gbx</file>
<ident>u8WV4GNAj7tJe22gwcseGtPNP1n</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\White\StadiumA3.Challenge.Gbx</file>
<ident>2WPJKLTVg7J7vBYP8QIA0T4L6K</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\White\StadiumA4.Challenge.Gbx</file>
<ident>Eh81Raowv4vxF9gKQ6g5DA5kNA6</ident>
</challenge>
<challenge>
<file>Campaigns\United\Race\Stadium\White\StadiumA5.Challenge.Gbx</file>
<ident>TGQmmc6MHpqlt5gzl9LkEfzsCB9</ident>
</challenge>
</playlist>

View File

@ -4,20 +4,23 @@ config=( )
playlist=( )
# Mandatory
SERVER_SA_PASSWORD=${SERVER_SA_PASSWORD:?ERROR | SuperAdminPassword needs to be set. Generate with pwgen if needed.} && \
config+=( "SERVER_SA_PASSWORD" )
SERVER_ADM_PASSWORD=${SERVER_ADM_PASSWORD:?ERROR | AdminPassword needs to be set. Generate with pwgen if needed.} && \
config+=( "SERVER_ADM_PASSWORD" )
SERVER_LOGIN=${SERVER_LOGIN?:ERROR | ServerLogin is missing. Server cannot start.} && \
config+=( "SERVER_LOGIN" )
SERVER_LOGIN_PASSWORD=${SERVER_LOGIN_PASSWORD?:ERROR | ServerLoginPassword is missing. Server cannot start.} && \
config+=( "SERVER_LOGIN_PASSWORD" )
# Optional
VALIDATION_KEY=${VALIDATION_KEY:-} && config+=( "VALIDATION_KEY" )
SERVER_SA_PASSWORD=${SERVER_SA_PASSWORD:-$(pwgen -s 24 1)} && config+=( "SERVER_SA_PASSWORD" )
echo "INFO | SERVER_SA_PASSWORD: ${SERVER_SA_PASSWORD}"
SERVER_ADM_PASSWORD=${SERVER_ADM_PASSWORD:-$(pwgen -s 24 1)} && config+=( "SERVER_ADM_PASSWORD" )
echo "INFO | SERVER_ADM_PASSWORD: ${SERVER_ADM_PASSWORD}"
SERVER_PORT=${SERVER_PORT:-2350} && config+=( "SERVER_PORT" )
echo "INFO | SERVER_PORT: ${SERVER_PORT}"
SERVER_P2P_PORT=${SERVER_P2P_PORT:-3450} && config+=( "SERVER_P2P_PORT" )
echo "INFO | SERVER_P2P_PORT: ${SERVER_P2P_PORT}"
FORCE_IP_ADDRESS=${FORCE_IP_ADDRESS:-${curl https://api.ipify.org}} && config += ( "FORCE_IP_ADDRESS" )
echo "INFO | FORCE_IP_ADDRESS: ${FORCE_IP_ADDRESS}"
SERVER_NAME=${SERVER_NAME:-Trackmania Server} && config+=( "SERVER_NAME" )
echo "INFO | SERVER_NAME: ${SERVER_NAME}"
SERVER_COMMENT=${SERVER_COMMENT:-This is a Trackmania Server} && config+=( "SERVER_COMMENT" )
@ -28,6 +31,8 @@ HIDE_SERVER=${HIDE_SERVER:-0} && config+=( "HIDE_SERVER" )
echo "INFO | HIDE_SERVER: ${HIDE_SERVER}"
MAX_PLAYERS=${MAX_PLAYERS:-32} && config+=( "MAX_PLAYERS" )
echo "INFO | MAX_PLAYERS: ${MAX_PLAYERS}"
PACKMASK=${PACKMASK:-stadium} && config+=( "PACKMASK" )
echo "INFO | PACKMASK: ${PACKMASK}"
# Game Config
GAMEMODE=${GAMEMODE:-1} && playlist+=( "GAMEMODE" )
@ -69,4 +74,4 @@ done
for idx in "${!playlist[@]}"; do
arg=${playlist[$idx]}
sed -i -e "s/@$arg@/${!arg}/g" GameData/Tracks/MatchSettings/playlist.xml
done
done

View File

@ -2,19 +2,23 @@
echo "INFO | Parsing custom playlist..."
CUSTOM_PLAYLIST=${CUSTOM_PLAYLIST:-playlist.txt}
[[ -z "${CUSTOM_PLAYLIST}" ]] && \
echo "INFO | Custom Playlist is not enabled, keeping default or user-edited playlist" && \
exit 0
PLAYLIST_PATH=${PLAYLIST_PATH:-playlist.txt}
PLAYLIST_FILE='GameData/Tracks/MatchSettings/playlist.xml'
if [[ -f "${CUSTOM_PLAYLIST}" ]]; then
if [[ -f "${PLAYLIST_PATH}" ]]; then
count=1
while read l; do
xmlstarlet ed -L -s /playlist -t elem -n challenge $PLAYLIST_FILE
xmlstarlet ed -L -s "/playlist/challenge[${count}]" -t elem -n file -v "${l}" $PLAYLIST_FILE
count=$((count+1))
done < $CUSTOM_PLAYLIST
done < $PLAYLIST_PATH
else
xmlstarlet ed -L -s /playlist -t elem -n challenge $PLAYLIST_FILE
xmlstarlet ed -L -s "playlist/challenge[1]" -t elem -n file -v "Challenges/Nadeo/A01-Race.Challenge.Gbx" $PLAYLIST_FILE
fi
echo "INFO | Finished parsing playlist files."
echo "INFO | Finished parsing playlist files"

View File

@ -2,7 +2,9 @@
set -e
[[ "$(id -u)" == 0 ]] && s6-setuidgid trackmania "$0"
[[ "$(id -u)" == 0 ]] && \
chown -R trackmania:trackmania /var/lib/tmserver && \
s6-setuidgid trackmania "$0"
cd /var/lib/tmserver

View File

@ -21,7 +21,7 @@ echo "INFO | TMSERVER_PORT: ${TMSERVER_PORT}"
MYSQL_HOST=${MYSQL_HOST:-db} && \
database+=( "MYSQL_HOST" )
echo "INFO | MYSQL_HOST: ${MYSQL_HOST}"
MYSQL_LOGIN=${MYSQL_LOGIN:?ERROR | MySQL username was not given...} && \
MYSQL_LOGIN=${MYSQL_LOGIN:?-trackmani} && \
database+=( "MYSQL_LOGIN" )
echo "INFO | MYSQL_LOGIN: ${MYSQL_LOGIN}"
MYSQL_PASSWORD=${MYSQL_PASSWORD:?ERROR | MySQL password was not given...} && \

2
xaseco/blacklist Normal file
View File

@ -0,0 +1,2 @@
jfreu.lite.php
jfreu.chat.php

100
xaseco/matchsave.xml Normal file
View File

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8" ?>
<matchsave_settings>
<!-- use the following section to force known logins to a specific team -->
<teamforce_teams>
<team>
<name>XXX</name>
<logins>
<login>xxx-max</login>
<login>siteguru</login>
<!-- ... add as many logins as you like -->
</logins>
</team>
<!-- ... add as many teams as you like -->
<default_team_name>Challengers</default_team_name> <!-- This is the team where all other players end up when teamforce is enabled -->
</teamforce_teams>
<!-- now the design stuff, colors and so on -->
<str_points_this_round>$i$0AFPoints This Round</str_points_this_round>
<str_points_this_match>$i$AF0Points This Match</str_points_this_match>
<col_chat_plugin>{#emotic}</col_chat_plugin>
<col_chat_default>{#message}</col_chat_default>
<col_chat_highlite>{#server}</col_chat_highlite>
<col_window_default>$000</col_window_default>
<col_window_highlite>$f00</col_window_highlite>
<col_window_highlite_team>$0af</col_window_highlite_team>
<col_window_special>$i$n</col_window_special>
<col_window_separator>$fff</col_window_separator>
<col_window_hint>$n$888</col_window_hint>
<col_round_points>{#highlite}</col_round_points>
<col_match_points>{#highlite}</col_match_points>
<col_teamname_round>$0af</col_teamname_round>
<col_teamname_round_highlite>{#server}</col_teamname_round_highlite>
<col_teamname_match>$af0</col_teamname_match>
<col_teamname_match_highlite>{#server}</col_teamname_match_highlite>
<!-- help messages - they show up when the points are displayed, but only if you activate them -->
<help_enabled>True</help_enabled>
<!-- you can add more random messages (these will only show up if the player does not belong to a team-->
<hlp_no_team>{#server}To join a team type "{#welcome}/team {#message}yourteamname{#server}"</hlp_no_team>
<hlp_random_msg_no_team>{#server}See all team options by typing "{#welcome}/team {#message}help{#server}"</hlp_random_msg_no_team>
<hlp_random_msg_no_team>{#server}Join a team and chat with your teammates via "{#welcome}/tc {#message}Hello Teammates{#server}"</hlp_random_msg_no_team>
<hlp_random_msg_no_team>{#server}See the current match standings by typing "{#welcome}/standings{#server}"</hlp_random_msg_no_team>
<!-- you can add more random messages (these will only show up if the player already belongs to a team-->
<hlp_change_team>{#server}Change your teamname with "{#welcome}/team {#message}yourteamname{#server}"</hlp_change_team>
<hlp_random_msg>{#server}See all team options by typing "{#welcome}/team {#message}help{#server}"</hlp_random_msg>
<hlp_random_msg>{#server}See the current match standings by typing "{#welcome}/standings{#server}"</hlp_random_msg>
<hlp_random_msg>{#server}Chat with your teammates by typing "{#welcome}/tc {#message}Hello Teammates{#server}"</hlp_random_msg>
<!-- last but not least, edit the startup configuration below -->
<show_teamname_changes_to_public>true</show_teamname_changes_to_public> <!-- Determines whether a teamname change will be shown to all players or not (affects only the /teamname or /team command)-->
<admin_can_read_teamchat>True</admin_can_read_teamchat> <!-- If true admins can read the teamchat of other teams -->
<teamchat_enabled>true</teamchat_enabled> <!-- Enable or disable teamchat -->
<teamchat_prefix>{#highlite}[Team]</teamchat_prefix> <!-- Prefix shown in front of each teamchat line -->
<team_force_enabled>False</team_force_enabled> <!-- Determines whether all players are forced to be in a team -->
<others_can_score>True</others_can_score> <!-- Determines whether teamless players' scores are tracked or not -->
<teamname_colors_allowed>False</teamname_colors_allowed> <!-- Determines if the teamnames are allowed to be color coded -->
<teamname_max_length>12</teamname_max_length> <!-- Determines how long a teamname is allowed to be -->
<match_results_timeout>5000</match_results_timeout> <!-- Match Result window timeout in milliseconds -->
<save_to_db>True</save_to_db> <!-- Shall the teamnames be saved to a database -->
<save_to_file>True</save_to_file> <!-- Shall the results be written to files -->
<!-- some filenames -->
<template_name>html.tpl</template_name>
<output_name>race_results.html</output_name>
<output_name_last>race_results_last.html</output_name_last>
<output_name_match>match_results.html</output_name_match>
<!-- path to your playlist directory, enable one of these two: -->
<!-- Windows -->
<!-- <playlist_dir>D:/TMDedicated/GameData/Tracks/MatchSettings</playlist_dir> -->
<!-- Linux -->
<playlist_dir>/home/tmf/TMF/GameData/Tracks/MatchSettings</playlist_dir>
<!-- basic settings -->
<max_player_count>16</max_player_count>
<format_date>Y-m-d</format_date>
<format_time>H:i</format_time>
<points>10, 8, 6, 4, 2, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0</points>
<!-- enable the whole plugin -->
<enabled>True</enabled>
</matchsave_settings>

55
xaseco/musicserver.xml Normal file
View File

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8" ?>
<settings>
<!-- override a track's custom music? -->
<override_track>False</override_track>
<!-- automatically load next song upon next track? -->
<auto_nextsong>True</auto_nextsong>
<!-- automatically shuffle songs at start-up & reload? -->
<auto_shuffle>False</auto_shuffle>
<!-- allow jukeboxing songs by players? -->
<allow_jukebox>True</allow_jukebox>
<!-- strip subdirs when showing song files? -->
<strip_subdirs>False</strip_subdirs>
<!-- strip extensions when showing song files? -->
<strip_exts>False</strip_exts>
<!-- read tags from all .ogg songs? -->
<cache_tags>True</cache_tags>
<!-- use read-only cache file? -->
<cache_readonly>False</cache_readonly>
<!-- filename in main directory to store tags -->
<cache_file>musictagscache.xml</cache_file>
<!-- full http link to directory holding the song files -->
<!-- http server must allow direct download of those files -->
<!-- OR a path below the server's GameData directory (e.g. -->
<!-- "Music/") which allows serving songs without webserver -->
<music_server>YOUR_SERVER_URL</music_server>
<!-- list of song files at your music server in .ogg or .mux -->
<!-- avoid spaces and special characters in the filenames and -->
<!-- http link, and observe correct upper/lowercase characters -->
<song_files>
<song>YOUR_FIRST_SONG.ogg</song>
<song>YOUR_SECOND_SONG.mux</song>
<song>YOUR_THIRD_SONG.ogg</song>
<!-- and so on -->
</song_files>
<messages>
<current>{#server}> {#music}The current song is: {#highlite}{1}</current>
<next>{#server}>> {#music}{1}$z$s {#highlite}{2}$z$s{#music} loaded the next song: {#highlite}{3}</next>
<reloaded>{#server}>> {#music}{1}$z$s {#highlite}{2}$z$s{#music} reloaded music config and cleared jukebox!</reloaded>
<sorted>{#server}>> {#music}{1}$z$s {#highlite}{2}$z$s{#music} sorted song list and cleared jukebox!</sorted>
<shuffled>{#server}>> {#music}{1}$z$s {#highlite}{2}$z$s{#music} shuffled song list and cleared jukebox!</shuffled>
<jukebox>{#server}>> {#highlite}{1}{#music} jukeboxed song: {#highlite}{2}</jukebox>
<jukebox_already>{#server}> {#music}You already have a song in the jukebox! Wait till it's been played before adding another.</jukebox_already>
<jukebox_dupl>{#server}> {#music}This song has already been added to the jukebox, pick another one.</jukebox_dupl>
<jukebox_notfound>{#server}> {#music}Song_ID not found - Type {#highlite}/music list{#music} to see all songs.</jukebox_notfound>
<jukebox_drop>{#server}>> {#music}Player {#highlite}{1}{#music} dropped his/her song {#highlite}{2}{#music} from jukebox!</jukebox_drop>
<jukebox_nodrop>{#server}> {#music}You don't have a song in the jukebox, use {#highlite}/music Song_ID{#music} to add one...</jukebox_nodrop>
<jukebox_empty>{#server}> {#music}No songs in the jukebox, use {#highlite}/music Song_ID{#music} to add one...</jukebox_empty>
<no_jukebox>{#server}> {#highlite}/music #{#music} is not currently enabled on this server.</no_jukebox>
<shutdown>{#server}>> {#music}{1}$z$s {#highlite}{2}$z$s{#music} disabled server music!</shutdown>
</messages>
</settings>