Introduction

After a lengthy hiatus in terms of development CPMA and CNQ3 have both received major updates, which are now live. CPMA (the mod) moves up to version 1.50, and CNQ3 (the engine), moves up to version 1.49. These updates have been made with the goal of improving the experience for both veterans and beginners alike without compromising what the core values of the game. With that said, the expectations for these updates were to: fix existing bugs, improve existing features, and introduce new quality-of-life features.

This update also marks a significant shift in both the staff in the background as myT takes over the lead programmer role from arQon, assisted by Terifire, df providing art, ix on design, and Fjoggs in operations/support. Before we get started, I think it's important to iterate that there are no game play changes.

Even though the team has been thorough in their attempt to identify bugs, we do not expect that this release is bug-free, and as such request players to submit any bugs they encounter via commenting in this thread. Please identify your hardware, and the bug, including how it can be recreated.
To play CPMA you will need the mod files and ideally CNQ3. CNQ3 is a free improved executable (engine) for running Quake III Arena on Windows and Linux. It is the official engine for CPMA. It is not necessary, but highly recommended when available for your platform.

youtube preview
Promotional Video

Additions:

  • add: new SuperHUD element: MultiView. the element is only visible when following a player full-screen with multi-view enabled.
  • add: new SuperHUD command: visflags <bitmask>
    • 1 - enable when following a player "full-screen"
    • 2 - enable in free-float camera view
    • 4 - enable in coach view
  • add: forfeit support and persistent scoreboards for duel (1v1 and HM). a duel game is forfeited if a player voluntarily leaves the match early (/team f, /disconnect).
  • add: the scoreboard's spectator list now indicates who is speconly (S) and referee (R).
  • add: new default SuperHUD config and new key textures (thanks df).
  • add: hud_takeScreenshots takes a screenshot for each SuperHUD config at the root of the "hud" directory. screenshots will be .jpg files if cg_useScreenShotJPEG is 1 and .tga otherwise with compatible engines, the console will be hidden automatically.
  • add: cg_drawBrightWeapons <bitmask> (default: 0) for fullbright weapon models:
    • 1 - first-person, your own gun.
    • 2 - first-person, carried by teammates.
    • 4 - first-person, carried by enemies.
    • 8 - weapons lying on the map.
    • 16 - free-float camera, carried by players.
  • add: fullbright player models (e.g. "keel/fb" for fullbright keel).
  • add: ui_sensitivity <0.0 to 100.0> (default: 1) is the mouse sensitivity in the UI.
  • add: cg_mvSensitivity <0.0 to 100.0> (default: 1) is the mouse sensitivity in the live multi-view UI. this is only used with engines that don't have the cgame input forwarding extension during demo playback, ui_sensitivity is used instead.
  • add: ch_consoleLines <1 to 64> (default: 3) is the max. line count shown by the 'Console' element
  • add: server_useMapModes <0|1> (default: 1) enables game mode overrides on map loads, cfg-maps/mapmodes.txt is used to populate the "Create Server" UI and select suitable game modes on server map loads. for all the details, see the top of the file itself.
  • add: with compatible engines, drop and disconnect errors will be displayed in the UI.
  • add: notify compatible engines of match starts you've missed (see "/help cl_matchAlerts" in CNQ3).
  • add: with compatible engines, end-game screenshots will hide the console.
  • add: support for the new help and cvar range extensions from compatible engines.
  • add: drawing movement keys for yourself and other players:
    • new SuperHUD elements: KeyDown/Up_<key>, where key is one of Back/Forward/Jump/Crouch/Left/Right example: the SuperHUD element KeyDown_Jump is only displayed when the jump key is pressed.
  • add: ch_drawKeys <bitmask> (default: 0) to enable/disable the new KeyDown/Up_<key> SuperHUD elements
    • 1 - when you're playing.
    • 2 - when you're following another player.
    • 4 - during demo playback (won't work with pre-1.50 demos).
  • add: new force colors/model options for team games:
    • cg_redTeamColors <CHBLS> (default: "cccab") to specify the color codes of players in the red team.
    • cg_blueTeamColors <CHBLS> (default: "mmmpo") to specify the color codes or players in the blue team.
    • CHBLS colors: rail Core, Head, Body, Legs, rail Spiral (like cg_enemyColors).
    • cg_forceTeamColors <bitmask> (default: 15) to decide when cg_red/blueTeamColors are used:
      • 1 - enable for your own team when in first person.
      • 2 - enable for the enemy team when in first person.
      • 4 - enable when in free-float camera mode.
      • 8 - only enable for game types with flags.
    • cg_teamModel <model> (default: "sarge/pm") to specify the model all your teammates should be using.
    • cg_forceTeamModel <0|1> (default: 0) to decide if your teammates use the model specified by cg_teamModel.
  • add: specdefer [N] command to move down the spectator queue N levels (default: 1).
  • add: overtime duration callvote in seconds with "od" or "overtimeduration" (min: 30, max: 300).
  • add: cg_autoAction option 128 to record when joining mid-game or during the countdown this requires option 4 to be set as well.
  • add: colored spawn points rendering in CTF and NTF, initial spawns are not animated.
  • add: cg_drawBrightSpawns <0|1> (default: 0) for making the spawn learning process easier.
  • add: cg_zoomAnimationTime <0 to 500> (default: 150) sets the zoom animation duration in milliseconds.
Changes:
  • chg: DEV gameplay reset to what it was before 1.48.
  • chg: Multi-View tweaks and fixes:
    • added auto-completion for /mv (an alias of /viewall).
    • fixed the PiP images not stretching up to the rectangle's edges.
    • enabled MV for DA and disabled MV for FFA.
    • disabled the MV cursor in non team modes.
    • fixed all SuperHUD elements being drawn in coach view.
    • coach view now respects ch_gauntlet.
  • chg: renamed OSP's /help to /osphelp.
  • chg: improved the map download UI and fixed the incorrect progress percentages.
  • chg: improved the SuperHUD warning messages.
  • chg: raised the com_maxfps cap to 250.
  • chg: "Add Bots" and "Remove Bots" menu tweaks:
    • fixed "Skill" and "Team" not displaying the current value.
    • added selected bot highlighting and mouse wheel support.
  • chg: "Game Settings" menu tweaks:
    • fixed the "Game Mode" displayed being wrong for some modes.
    • added display of the current "Overtime Mode" and a new entry for "Overtime Duration".
    • fixed the display of "Game Mode", "Gameplay", "InstaGib", "thrufloors" and "Overtime Mode" in their submenus.
  • chg: removed the "Team Orders" menu.
  • chg: cg_autoAction screenshots and stats files now use the same file name as the demo.
  • chg: votes can neither be called nor pass during intermission.
  • chg: follow, follownext and followprev will no longer move you to the spectator team when you're not.
  • chg: cg_deferPlayers 1 only applies during matches and pre-match countdowns.
  • chg: invalid characters in cg_altLightning don't disable the LG beam anymore.
  • chg: invalid s_announcer values will mute it instead of playing placeholder sounds with some engines.
  • chg: cg_simpleItems <0|1> (default: 0) is a 0/1 cvar again (i.e. item scaling is now disabled).
Fixes:
  • fix: the "Chat1-8" SuperHUD elements now behave the same as "Console" wrt con_notifytime and cl_noprint.
  • fix: the map selection UI would show maps from .arena files even though the .bsp files were missing.
  • fix: scores and names can no longer overlap in the 1v1 scoreboard.
  • fix: FFA and DA matches would start while the 2nd player was still connecting.
  • fix: the 'Console' SuperHUD element would not always draw all the lines in its rectangle.
  • fix: cv'ing a map script when the required .bsp is missing will no longer make the next map load use it example: when hub3aeroq3a.bsp was missing, "cv map !cpm22a" followed by "cv map anymap" would mean "anymap" was getting loaded with the cpm22a.map item layout.
  • fix: clearing the ready status of all players when a match begins in a round-based game mode.
  • fix: cgame wasn't unregistering commands during shutdown.
  • fix: squashed the "specbugs" that were introduced thanks to ioq3 servers:
    • 1. Spec queue bug: a player going spec after you gets to play before you.
    • 2. Spec follow bug: toggling follow/free-float mode with +attack doesn't work.
  • fix: choppy animations when the server time is a large value:
    • underwater FOV, 3D elements in the HUD and scoreboards, weapon drift, sine trajectories.
  • fix: the game mode under the level shot in the "game server" menu wasn't shown for HM and NTF.
  • fix: the credits now respect s_musicVolume.
  • fix: the team overlay was sometimes visible for spectators.
  • fix: multi-view mouse input sensitivity is now the same as in the UI with compatible engines.
  • fix: the player name look-up behavior of follow, cstats, cv remove/kick/referee/unreferee, ... if 2 players had the same name, it would just pick the first one (lowest client number).
  • fix: the CTFS match durations in the XML stats files were incorrect.
  • fix: sometimes, stats and screenshots were not saved during the intermission.
  • fix: /team free/red/blue would make you go spec in non-team modes.
  • fix: the server would sometimes not send global events (flag taken/returned/captured, obituaries, etc).
  • fix: the UI wasn't centered properly with display aspect ratios less than 4:3.
  • fix: demo recording start/stop bugs:
    • demo recording not starting in FFA.
    • demo recording not starting in team games with bots.
    • demo recording not stopping when going back to warm-up.
    • demo recording not stopping when map/restart/mode/gameplay/match votes pass.
    • demo recording and announcer not stopping when a countdown was interrupted (e.g., a duel player got kicked).
  • fix: no longer need to use +scores to get the scoreboard data when connecting during an intermission.
  • fix: slow-sinking/raising free-floating spectator camera movement.
  • fix: the zoom-out animation's start would abruptly change the fov.
  • fix: always load the map config after a game type vote passes example: cv map cpm24 followed by cv mode 1v1 was resetting the weapon respawn to 15s.
  • fix: voting maps whose names start with a digit is working now example: cv map 13void.
  • fix: when a map is callvoted, its name is fixed to use the case of the actual file name Linux servers can then load the map script (case sensitive file systems) and demo files have proper names example: cv map CPM24 will not get incorrectly stuck on weapon respawn 15 on Linux servers anymore.

Little (but important) changes...

There are a couple of smaller changes which should be noted off the bat as slightly alter some older conventions. These are all fairly innocuous changes in both the engine and the mod but it is important to highlight them as they are potentially impactful shifts. Please note that I have arranged them below for both engine and mod:

CNQ3 1.49
  • CNQ3 does not write to q3config.cfg on exit. Use /writeconfig manually to save to a file.
  • /sensitivity is gone and is now replaced by m_speed.
  • r_mode works differently
  • r_width replaces r_customwidth and r_height replaces r_customheight.
  • r_brightness replaces r_overBrightBits.
  • r_mapBrightness replaces r_mapOverBrightBits.
  • cl_allowDownload 1 doesn't use the original (super slow) download system.
  • Lower latency input.
CPMA 1.50
  • com_maxfps has been increased to 250.
  • Fullbright models are enabled using cg_enemymodel model/fb.
  • Fullbright weapons are manipulated using cg_drawBrightWeapons.
  • Persistent team colors are manipulated using cg_forceTeamColors.

Bigger (significant) changes

Below are some of the bigger additions and updates in the current patch. These updates -- which sadly do not include loot boxes, cosmetics or pay-to-win features, constitute one of the heftier updates in Promode history in terms of features and fixes. These updates will significantly improve the experience of getting into the game and provide a veterans with a slew of quality-of-life improvements. As always, all of these settings can be turned-off if players do not wish to use them.

Sensible Settings

One on the major issues with playing Quake 3 in 2017 is the constant fiddling with configs, settings and stuff... There isn't something groundbreaking in this update that will change that however there are some common sense updates which have been introduced. This update comes with a sensible default config and a decent HUD which look good and are functional. Players who haven't played in a long time, or ever, can now get into the game quicker than before and only have to worry about the more typical issues such as movement and weapon binds.

Image
New default config and HUD

Improved Console

Quake players spend a lot of time in the console and the vanilla Quake 3 console is barren and hostile, not giving players much help. As a result one of the major areas of improvement is an updated console which now comes with will full color customizability, tab completion, variable information text, as well as a new /help <cvar> functionality, and variable help panel. This makes navigating through the various variables a much smoother and simpler experience.

Image
New and improved console with help panel.

Persistent Team Colors

Another issue which continues to be a challenge for Quake 3 (and all Quakes to be honest) is the continued color mess. With the current settings it doesn't matter if you're on the red team or the blue team, the enemy will always appear "green" and friendly units to whatever you've set it to. This can make following games for example difficult as it's not always clear which team you're following. This update will introduce persistent team colors via the cg_forceTeamColors cvar and this will allow players to permanently set the colors of players on the blue team and the red team to whatever they choose. This will provide better consistency in terms of following the game as well as playing for some. We have of course included some sensible defaults but players can play with the settings with the below bitmasks.
  • cg_forceTeamColors <bitmask> (default: 15) to decide when cg_red/blueTeamColors are used:
    • 1 - enable for your own team when in first person.
    • 2 - enable for the enemy team when in first person.
    • 4 - enable when in free-float camera mode.
    • 8 - only enable for game types with flags.

In the image below Sarge will appear blue to itself, from Keel's perspective, and from the spectator's perspective.

Image
Persistent Team Colors

Full brightness

As a niche community we sometimes have very niche demands. One of those was fullbrights. Fullbrights are in. Fullbright weapons. Fullbright player models. This update now introduces fullbright everything. This should help with visibility for the people who are almost blind.

Speaking of visibility and brightness, this update also includes a neat feature called brightspawns which better highlights the spawn placements of maps, and adds the appropriate team coloring to spawns in team modes with team specific spawns (CTF, NTF).

Bugs & Fixes

As mentioned in the introduction, the aim of this update has been to improve the playing experience for veterans and beginners alike. A large portion of this means discovering, reproducing, and finally fixing bugs, or taking existing processes and improving them. Thanks myT, Terifire and the various testers, lots of bugs have been finally removed from the game including the infamous spec bug, global events missing (e.g. flag pick-ups and frag messages being missed) bug, etc... From the length of the change log I think it's clear a lot of small to large sized bugs have squashed and this means a better player experience.

Bug Reports: Please report any bugs you find in CPMA 1.50 in the comments section of this post.

Website & Guides for guides (for guides)

A major part of this CPMA update has also been to update the existing CPMA homepage and accompanying documentation. For a long time, finding solutions to simple problems went wading through various, poorly formatted, and out of date, .txt files. Now, you can head over to www.playmorepromode.com and have immediate access to current documentation for pretty much every variable, sorted in orderly fashion. We have big(ger) things planned for the website set in 2018 but for now this should serve as a good knowledge base.

Links: CPMA Official Website, icon_discord CPMA Discord Server.