241 lines
8.6 KiB
Plaintext
241 lines
8.6 KiB
Plaintext
|
|
Challenge ProMode Arena - Custom Modes
|
|
--------------------------------------
|
|
Date: 31 Dec 03
|
|
Audience: Server admins
|
|
|
|
|
|
Abstract:
|
|
An explanation of custom modes, which are "groups" of settings that persist
|
|
across map changes. Modes are an extremely powerful mechanism and actually
|
|
very easy to use, but they do have rules that must be followed.
|
|
|
|
|
|
Motivation:
|
|
Servers are generally configured through extensive use of CVARS. Aside from
|
|
issues with bloated server.cfg files, this scheme is simply not suitable for
|
|
advanced mods like CPMA that support multiple gametypes, each of which has
|
|
fundamentally different behaviour and thus REQUIRES fundamentally different
|
|
settings for optimum gameplay.
|
|
"Casual" gametypes such as Clan Arena are generally meant to provide newbies
|
|
with a gentle introduction to FPS play and simplify the game to just one or
|
|
two elements; more advanced gametypes such as DM are intended to tax every
|
|
possible aspect of a player's ability, and demand a wider range of "overall"
|
|
skill from them.
|
|
Modes provide a simple way for server admins to address these different
|
|
audiences by localising the rules of each gametype rather than attempting
|
|
to come up with a "best mix" in a global config instead.
|
|
|
|
|
|
CPMA ships with several standard modes to facilitate competition play.
|
|
Hopefully, an explanation of how these work will clarify the concept and
|
|
behaviour before getting into how admins can define modes of their own.
|
|
|
|
Despite the need for variances in settings, there are certain elements of
|
|
gameplay that are common across a large number of gametypes. These form the
|
|
"base" configuration for all modes, and are as follows:
|
|
|
|
Spawn Health: 100
|
|
Spawn Armour: 0
|
|
Armour Decay: Off in games with items, On in "arena" games
|
|
Self Damage: Full
|
|
Team Damage: Full
|
|
Falling Damage: On
|
|
Maximum Damage: No Limit
|
|
Armour Types: Standard ProMode
|
|
Starting Weapons: Gauntlet and MG
|
|
Weapon Respawn: 15 seconds
|
|
Megahealth Respawn: Wearoff-based
|
|
Weapon Dropping: Off
|
|
Flag Dropping: Off
|
|
Instagib: Off
|
|
Instagib Reload: 1500
|
|
Thaw Time: 3 seconds
|
|
Autothaw Time: 120 seconds
|
|
Cessrail: Off
|
|
Overtime: Sudden Death
|
|
Powerups: On
|
|
Powerup Respawn: 90 seconds
|
|
Holdables: Medkit On, Teleporter Off
|
|
Warmup: Competition (require \ready)
|
|
Player Respawn: At end of warmup
|
|
|
|
Fraglimit and Timelimit are set to 0 as well, since derived modes generally
|
|
only want one or the other.
|
|
Note that although things like Instagib Reload and Thaw times are not really
|
|
"common" in terms of the number of games that they apply to, they are still
|
|
set here as they don't create a CONFLICT with "normal" play.
|
|
|
|
To this base configuration, the standard modes apply any changed or
|
|
additional rules needed to acheive optimum gameplay within the context of
|
|
their specific gametype.
|
|
|
|
As an example, for Deathmatch play those rules are:
|
|
|
|
Timelimit: 10 minutes
|
|
Overtime: 2-minute periods
|
|
Weapon Respawn: 15 seconds
|
|
Megahealth Respawn: Wearoff-based
|
|
Powerups: Off
|
|
Holdables: Off
|
|
|
|
For FFA games, the base rules and especially the DM variants are a
|
|
little more brutal and complex than we'd really like. FFA is more of a
|
|
friendly game for fun than a competitive one, so we simplify the
|
|
gameplay by changing a few more of the rules:
|
|
|
|
Fraglimit: 30
|
|
Overtime: Sudden death
|
|
Weapon Respawn: Use weaponstay
|
|
Powerup Respawn: 60 seconds
|
|
Megahealth Respawn: Fixed interval
|
|
Warmup: None
|
|
|
|
|
|
Custom modes are on equal footing with the built-in modes.
|
|
You start with the same "base" settings, and add or change from there.
|
|
You MAY NOT use the "mode" vote inside a custom mode: while it might be
|
|
trivially easier to derive modes from each other, it's too prone to
|
|
people becoming confused and creating cyclical modes.
|
|
You can't try and replace a standard mode with one of your own: the
|
|
system will always try the built-ins first. Hence STANDARD modes. :)
|
|
|
|
There are 3 config/mode only "votes": these can never be callvoted by
|
|
players, but still exist as a way to manipulate settings that would
|
|
otherwise be unchangeable: "ammo", "type", "locked".
|
|
TYPE is the "true" underlying gametype for the mode, and MUST be specified
|
|
in your mode config. Accepted values are:
|
|
-1: HM, 0: FFA, 1: 1v1, 2: DA, 3: TDM, 4: CTF, 5: CA, 6: FTAG, 7: CTFS
|
|
This underlying type is what determines the maplist used by the mode:
|
|
0: ffamaps.txt
|
|
-1 and 1: 1v1maps.txt
|
|
2 and 5: camaps.txt
|
|
3 and 6: teammaps.txt
|
|
4 and 7: ctfmaps.txt
|
|
LOCKED is for MA maps only and allows you to make an arena unavailable
|
|
(e.g. you want people to only use the CA arena). It requires an argument
|
|
just for consistency's sake, but the only sensible argument is "1". :)
|
|
Locked arenas must still be VALID, i.e. have a TYPE entry.
|
|
|
|
|
|
Power comes at a price. The settings in your custom mode are subject to
|
|
only the most minimal validation: if you try to do something stupid in them
|
|
it's quite likely that the system will allow it. Be careful. :)
|
|
|
|
CPMA ships with a few custom modes of its own in the modes/ directory.
|
|
They can be quite useful as a reference for how to acheive a particular
|
|
style of gameplay. The "base" settings are always applied first, then
|
|
the customisation defined by the mode is added in.
|
|
Modes are matched case-INsensitive to avoid problems on *nix filesystems.
|
|
|
|
As an example: the RA3 mod uses a form of Clan Arena tailored towards
|
|
spam and rail-whoring even more than standard CA is. :P
|
|
To mimic that behaviour in CPMA, create a modes/RA3.cfg like this:
|
|
|
|
type 5 # Clan Arena derivative
|
|
limit 5 # first team to 5 rounds wins
|
|
ammo 200,100,20,50,150,50,100,0 # lots of GL/PG/RG ammo
|
|
armor 100 # 2 rails = YUO AR TEH WINNAR!
|
|
items -BFG
|
|
fallingdamage 1
|
|
startrespawn 0
|
|
selfdamage 2
|
|
teamdamage 0 # no team damage in spamfests
|
|
|
|
Note the format of the "ammo" line: it MUST NOT contain spaces, since the
|
|
voting system can only support single tokens as arguments.
|
|
|
|
US-style Freeze Tag play is another somewhat unusual ruleset: since the
|
|
penalties for being frozen are quite severe, spawnees are outfitted with
|
|
extra weapons and a small amount of armour to help avoid simply being
|
|
spawnfragged and thus refrozen immediately. While Freeze is a team game,
|
|
certain level control elements are also reduced to make lockdowns less
|
|
common and harder to maintain.
|
|
|
|
type 6 # Freeze Tag derivative
|
|
armor 25 # avoid one-shot spawnrapes
|
|
dropitems 1 # share weapons/ammo with teammates
|
|
overtime 1
|
|
simplemega 0
|
|
startweapon 268 # start with MG, SG, and PG
|
|
startrespawn 0 # don't thaw winning team after score
|
|
timelimit 20
|
|
weaponrespawn 15 # make weapons more available
|
|
|
|
|
|
IMPORTANT: How modes interact with Multi-Arena maps
|
|
---------------------------------------------------
|
|
|
|
MA maps REQUIRE each arena's settings to be specified in a config file,
|
|
which is always <mapname>.cfg and is automatically applied when the map
|
|
is loaded. The file is read from the directory that map_cfgdir points to.
|
|
|
|
The format of MA config files is the same as for custom modes, and arenas
|
|
are initialised to the same "base" configuration that modes use.
|
|
|
|
Each group of settings MUST be preceded by an "arena n" line so that the
|
|
system knows where to apply them.
|
|
|
|
Config files CAN use "mode XX" lines, and this is HIGHLY recommended.
|
|
|
|
As an example: to configure an arena for 1v1 DA play, you CAN just use:
|
|
|
|
# Thunderstruck
|
|
arena 2
|
|
type 2
|
|
armor 100
|
|
limit 1
|
|
startrespawn 0
|
|
|
|
and you'll actually get a rather fun game (ironically, one that's more
|
|
interesting and skillful than PingSpam Arena). :P
|
|
It's probably not what you were after though - to get THAT you need to use
|
|
something more like this:
|
|
|
|
# Thunderstruck
|
|
arena 2
|
|
type 2
|
|
ammo 200,100,20,50,150,50,100,0
|
|
armor 100
|
|
limit 1
|
|
items -BFG
|
|
startrespawn 0
|
|
|
|
After a few of those, the config starts to get rather heavy-looking.
|
|
So instead, you can simply do this:
|
|
|
|
# Thunderstruck
|
|
arena 2
|
|
mode DA
|
|
|
|
Quite a bit cleaner and more concise. :)
|
|
However, since custom modes are just as valid as standard modes are,
|
|
you can go even further and create exactly the behaviour that you want
|
|
in a single place, then apply it easily to multiple arenas and multiple
|
|
maps. For example, to cut down on spam create a modes/MyDA.cfg like this:
|
|
|
|
type 2
|
|
ammo 200,100,0,50,150,50,0,0
|
|
armor 100
|
|
limit 1
|
|
items -BFG
|
|
items -GL
|
|
items -PG
|
|
startrespawn 0
|
|
|
|
Then in ra3map1.cfg just use:
|
|
|
|
# Evolution
|
|
arena 1
|
|
mode MyDA
|
|
|
|
# Thunderstruck
|
|
arena 2
|
|
mode MyDA
|
|
|
|
etc.
|
|
Once you've done that, you can change the settings for any arenas and
|
|
any maps that use your custom mode by just changing the definition of
|
|
that mode itself, rather than copying and pasting the settings into
|
|
every individual map's config file.
|