Introduction
This is a feature and bug-fix update for Age of Empires II: The Conquerors Expansion. Its primary focus is to correct several long existing issues with the game, the AI system, compatibility, and related elements.
Download UserPatch v1.5 (RC, Build 6268, 2019/02/28)
Note: this is subject to change, and compatibility is not guaranteed with the final release.
Please click here to learn more about downloading and installing UserPatch v1.5.
Core Features of UserPatch v1.5
- Population caps have been extended up to 250, or optionally 1000.
- All available video resolutions, including HD and widescreen, are selectable.
- Choose either the standard widescreen interface or the centered style.
- Spectate any single player or multiplayer game live without lag for the players.
- Mirror player civilizations with the new Team Random civ option.
- Select a maximum age for advancement using the "Starting Age" dropdown.
- Each map script generates 4,294,967,296 unique maps from 32,768 in v1.0c.
- Single player mode now operates at 60fps instead of 20fps in v1.0c.
- Browse saved and recorded games from subfolders in your SaveGame folder.
- Check real-time achievement statistics while watching recorded games.
- With the new Relics victory condition, capturing the relics is an instant win.
- The patrol system responds like The Age of Kings with little to no delay.
- New Random button above game settings for new styles of play.
- Flares are now bold and render player colors on the mini-map display.
- New higher resolution 1:1 and 1:2 full map captures with "Ctrl+F12".
- Age advancement notifications are now shown in each player's color.
- Restored games can now be recorded in all game modes.
- The vote panel/serial sync bug has been fixed for multiplayer.
- New auto-save if a problem occurs to ensure that resuming is possible.
- Optional multiple building queue to auto-distribute unit training.
- Many bug fixes for the core game and improvements for the AI system.
- The installer will correct any color problems on Windows Vista and later.
General Updates from v1.4 to v1.5
- Per-civilization m3u music playlists for both the core game and expansions.
- Precision scroll system option for smoother sub-tile scrolling.
- Shift group appending, which adds units to a Ctrl group while selecting.
- Keydown object command hotkeys, which activate without waiting for key release.
- Two-finger touch screen controls for Windows 7 and later.
- The score limit and maximum age are now displayed on the Objectives window.
- Switch players in sp mode or rec/spec with "Ctrl+Shift+[F1-F9]" (F9 is Gaia).
- Expansions can now override taunts and each can have its own hotkey (hki) files.
- New AI capabilities for precision micro, wall construction, and communication.
- New custom real world maps and tournament "random" maps.
- New dynamic random map and scenario modding capabilities.
- New direct messaging commands for in-game chat and direct AI taunts.
- New Medium and High starting resources for Regicide and Death Match.
- New self+team, neutral, and enemy technology effects for use with A.G.E.
- New environment effects including animated water rendering.
- New extended statistics score display for rec/spec and AI-only single player games.
- Tech tree civilization descriptions are now formatted with bold, etc.
- The "Ctrl+X", "Ctrl+C", "Ctrl+V", and "Ctrl+A" hotkeys now work for all text input.
- The hotkey editor will now allow, but still alert, for conflicting keys.
- Reset a hotkey from the editor with a right-click while changing it.
- Hotkeys under "More" (Build, Dock) now have priority over go-to-building hotkeys.
- Hold "Ctrl" when right-clicking to target objects hidden behind buildings (or alternates).
- Hold "Ctrl+Alt" when right-clicking to move without targeting.
- Hold "Shift" when clicking the Idle Villager button to find idle military units.
- Hold "Ctrl" when buying or selling at the market for 1000 resources per click.
- Hold "Ctrl+Shift" when buying or selling at the market for 10000 resources per click.
- The mouse wheel activates manual gate rotation mode without affecting hotkeys.
- Set language id 10815 to override the extended help textbox height for mods.
- Set language id 9870 to override the statistics headers with 4 tab-delimited lines.
- Set "Friend Foe Ids" to override friend/foe color ids (see Details link above).
Multiplayer Updates
- New low-delay multiplayer (closer to single player for low ping games).
- Improved starting framerate (not 10fps for the first 30 seconds).
- Improved mouse refresh rate for multiplayer games for smoother movement.
- All save commands are now restricted by the pause counter and a timer.
- The multiplayer setup screen now updates in the background.
- Multiplayer gameplay now operates in Background: View Lock by default.
- Messages on the multiplayer setup screen now alternate shades of grey.
- Player changes caused by coop colors now alert with a message.
- Notifications are sent when a player switches away from the game.
- The setup screen preserves the last hosted game type except scenarios.
Spectator and Rec Updates
- New unit spy mode with dark fog to indicate unexplored tiles (All Visible checkbox).
- Toggle state: "Alt+T" (chat hotkey) for All Visible, "Alt+F" (flare hotkey) for Fog of War.
- Adjust speed: "Ctrl+Left" for slower, "Ctrl+Right" for faster, "Ctrl+Shift+Down" for normal.
- Change stats: "Ctrl+Down" or "F4" or click the minimap Statistics button.
- Reverse stats: "Ctrl+Up" or hold "Shift" when clicking the minimap Statistics button.
- Locate King/Guard: "Ctrl+Shift+Up" or hold "Ctrl" when clicking the Idle Villager button.
- Hold "Shift" when using the player name dropdown list to switch without changing view.
- Hold "Shift" when clicking another player's object to switch without changing view.
- Hold "Shift" when clicking the Flare button to enable wall scanning.
- The random map seed is now displayed on the Objectives window.
- The name dropdown list now renders text with player colors.
- Increased rec playback rate when watching at 100% max speed.
- The actual Sx maximum will now be shown at the game clock.
- The last IP address is now pre-filled in the spectator client.
- Configurable late-join time limit from the spectator client.
AI Scripting Updates
- Over 50 new AI scripting commands have been added to increase AI capabilities.
- Several new direct unit control command actions have been added for precision micro.
- Over 50 new object data sources have been added to provide more information to AIs.
- New strategic numbers for controlling villager garrison, trade evasion, and construction.
- AIs will now be able to precisely place walls and other buildings.
- AIs now have elevation awareness and can perform sub-tile unit micro.
- AIs can now see and respond to chat messages by player name or color.
- Please see the reference guide and UserPatchConst.per in the Reference/Scripting folder.
Random Map Updates
- New RMS capabilities to enable extended game modes and victory conditions.
- direct_placement: enable positioning of player lands with land_position and assign_to_player.
- effect_amount: execute any available research-style tech effects (civ tech trees still have priority).
- effect_percent: like effect_amount, but with decimal precision (divides values by 100).
- weather_type: set rain, snow, or thunderstorm effects, terrain tinting, and water direction.
- guard_state: set an object that must be protected to get a resource trickle or avoid defeat.
- terrain_state: set various terrain properties, including buildable shallow terrain.
- assign_to: assign a land to a player, color, or team in combination with direct_placement.
- rnd(min,max) parameter: randomize any numeric parameter "number_of_objects rnd(1,3)".
- New ZR@MapName.rms (zip-rms): create custom real world maps and more (see ZipRmsFiles.txt).
- Multiple wall lines can now be placed at different distances around the player land.
- With no TC, walls will surround the first player object; use REVEALER (112) for walled nomad.
- New UNIQUE_UNIT (-1) and ELITE_UNIQUE_UNIT (-2) values for use with create_object.
- direct_placement or a custom real world map is noted with !P after the map name in Objectives.
- effect_amount or effect_percent is noted with !C after the map name in Objectives.
- guard_state is noted with !G after the map name in Objectives, along with other information.
- In multiplayer, players are alerted by !Fixed Positions, !Custom Scenario, or !Guard details.
- Please see Reference.html and UserPatchConst.rms in the Reference/Scripting folder.
RMS #Const Updates
- Game modes: RANDOM_MAP, TURBO_RANDOM_MAP, REGICIDE, DEATH_MATCH, KING_OT_HILL, WONDER_RACE, DEFEND_WONDER, CAPTURE_RELICS.
- Version: UP_AVAILABLE (1.4 features), UP_EXTENSION (1.5 features).
- Player count: [1-8]_PLAYER_GAME.
- Team count: [0-4]_TEAM_GAME (unteamed players are TEAM0; all unteamed is a 0_TEAM_GAME).
- Per-player team id: PLAYER[1-8]_TEAM[0-4] (unteamed players are TEAM0).
- Per-team size: TEAM[0-4]_SIZE[0-8] (unteamed players are TEAM0).
- Settings: AI_PLAYERS (detect AIs to avoid creating situations where they can't play effectively).
- Please see AcropolisN.rms in the Reference/Scripting folder for a CAPTURE_RELICS example.
Scenario Core Updates
- The Set Objects button starts selection mode, while the Go To Objects button ends it.
- Added all values to the Tribute effect and Accumulate Attribute condition dropdowns.
- Fixed crash that would occur by the removal of many objects on a tile due to a terrain change.
- Fixed issue that would cause houses to change graphics when switching to testing.
- The rotation of resource objects (forage, etc.) will now be preserved for scenarios and campaigns.
- The map copy mouse region will now properly reflect the actual size of the copied area.
- The double negative object ungarrison trick now has a special exception to work despite a bug fix.
- Appending to an effect's selected units by holding shift while box-selecting new units now works.
- Selected units from different effects are no longer shown as combined when switching effects.
- The Message textbox will not overlap the dropdowns for Send Chat and Change Object Name.
- Select up to Elevation 11 instead of 7 (avoid high elevation at the map edge for visibility).
- Press "Ctrl+B" to toggle terrain blending to draw water without beach, etc.
Scenario Trigger Updates
- Civilization condition: set Quantity to the civilization id (Britons: 1, Franks: 2, etc.).
- Random Percent condition: set Quantity from 1-100; negate it to disable the trigger after one test.
- Teleport effect: move a unit directly using the Task Object effect with Number set to 1.
- Volume effect: adjust volume using the Play Sound effect with Number set from 1-8 or 9 to stop.
- Execute custom tech effect commands with "up-effect" (see CustomScenario.txt).
- Modify specific, per-object, non-global attributes with "up-attribute" (see CustomScenario.txt).
- Force unique tech buttons to appear using the Research Technology effect with Number set to 5.
- Techs forced in this way must be researched before another action restores the tech tree.
- Extended Research Technology effects will now update affected building buttons while selected.
- An .scx or any scenarios inside a .cpx can load a terrain override .zip with a trigger.
- Adjust the new weather effects (rain, thunderstorm, snow, tinting, water direction) with triggers.
- Please see CustomScenario.txt in the Reference/Scripting folder for more.
Tech Effect Updates
- New tech effect type 7: Enable Tech, which can disable, enable, or force a tech for multi-use.
- New tech effect type 8: Modify Tech, which can set/add tech cost data or tech time.
- New tech effect type 9: Set Player Data, which can set DATA_CIV_NAME_ID (0) to a new lang id.
- New tech effect types 10-19: apply effects 0-9 to self + allies.
- New tech effect types 20-29: apply effects 0-9 to enemies.
- New tech effect types 30-39: apply effects 0-9 to neutral.
Tech Attribute Updates
- New ATTR_GARRISON_TYPE added as #30: append valid garrison type flags (see A.G.E.).
- New ATTR_DATA_FLAGS added as #31: enable garrison drop with flag 2; disable with flag 4.
- New ATTR_HERO_STATUS added as #40: set to 0 for non-hero or 1 for full hero status.
- New ATTR_ATTACK_DELAY added as #41: set to a valid frame delay count.
- New ATTR_TRAIN_LOCATION added as #42: set to a valid building id.
- New ATTR_TRAIN_BUTTON added as #43: set to a valid build button slot id.
- New ATTR_BLAST_LEVEL added as #44: set to a valid blast flag id.
- New ATTR_HERO_HEAL_TIME added as #45: set to the time to heal 1HP (default of 0 becomes 2s).
- New ATTR_SHOWN_ATTACK added as #46: set to the displayed attack value.
- New ATTR_SHOWN_RANGE added as #47: set to the displayed range value.
- New ATTR_SHOWN_MELEE_ARMOR added as #48: set to the displayed melee armor value.
- New ATTR_SHOWN_PIERCE_ARMOR added as #49: set to the displayed pierce armor value.
- New ATTR_NAME_ID added as #50: set to a valid lang id to change object name.
- New ATTR_CREATE_SDESC_ID added as #51: set to a short description lang id.
- New ATTR_CREATE_LDESC_ID added as #52: set to a long description lang id (unused).
- New ATTR_TERRAIN_ID added as #53: set to a valid terrain restriction id.
- New ATTR_TRAITS added as #54: append valid trait flags (see A.G.E.).
- New ATTR_CIV_ID added as #55: set to a civilization id (unused).
- New ATTR_PIECE added as #56: set to the attribute piece value (unused).
- New ATTR_DEAD_ID added as #57: set to a valid dead object id.
- New ATTR_GARRISON_TYPE flags: 16: livestock, 32: siege, 64: ships.
- New ATTR_HERO_STATUS flags: 2: no-convert, 4: auto-heal, 8: defensive, 16: protected formation
- New ATTR_HERO_STATUS flag: 32: self-destruct (ATTR_RESOURCE_CARRY must be 1 or 2; if ATTR_RESOURCE_CARRY is 1, hard-coded ids 440, 527, 528, 706 will test this flag).
- New ATTR_HERO_STATUS flag: 64: distance-based area damage with blast radius.
- New ATTR_HERO_STATUS flag: -128 (0x80): disable attack ground button interface.
- New ATTR_TRAITS flag: 64: disable object delete button command.
- ATTR_DATA_FLAGS was previously Unknown33 and ATTR_HERO_HEAL_TIME was Unknown26.
- ATTR_PROJECTILE_ID can now be set to a projectile type id greater than 255.
- All new tech attributes can only be modified by the SET_ATTRIBUTE effect, except ATTR_HERO_STATUS, ATTR_ATTACK_DELAY, ATTR_HERO_HEAL_TIME, ATTR_SHOWN_ATTACK, ATTR_SHOWN_RANGE, ATTR_SHOWN_MELEE_ARMOR, ATTR_SHOWN_PIERCE_ARMOR, and ATTR_TRAITS can also be modified by the ADD_ATTRIBUTE effect.
- If ATTR_HERO_STATUS or ATTR_TRAITS are modified by the ADD_ATTRIBUTE effect, the new value flags will be appended. If flag 256 is set, the value flags will be removed instead.
- If flag 1 is set for ATTR_GARRISON_TYPE, the building's "Back to Work" button will appear.
- If flag 65536 is set for ATTR_ARMOR or ATTR_ATTACK, the value is treated as 8-bit signed.
- If Interface Kind is set to 12, siege tower behavior will be enabled for Unload ability #12.
- If the ability is enabled, livestock (class 58) will be able to garrison into adjacent targets.
- MUL_ATTRIBUTE an object cost (FWGS) by -1 to create a cost type or -2 to remove a cost type.
- SET_ATTRIBUTE an object's ATTR_STORAGE_VALUE to -32 to commit the (FWGS) amount.
- GAIA_SET_PLAYER_DATA the DATA_MODE_FLAGS (1) to adjust spies/treason buttons.
- New ATTR_BLAST_LEVEL flags: 4: logistica-style 5HP damage, 8: elephant-style half damage.
Resource Amount Updates
- New AMOUNT_BUILDING_TRICKLE_FOOD added as #205: set a multiplier for feitoria ability 151.
- New AMOUNT_BUILDING_TRICKLE_WOOD added as #206: set a multiplier for feitoria ability 151.
- New AMOUNT_BUILDING_TRICKLE_STONE added as #207: set a multiplier for feitoria ability 151.
- New AMOUNT_BUILDING_TRICKLE_GOLD added as #208: set a multiplier for feitoria ability 151.
- New AMOUNT_REVEAL_ENEMY added as #209: set to reveal enemies except for sp scenarios.
- Append flags for 209: 1: reveal starting town-center, 2: reveal first town-center on nomad.
- New AMOUNT_REVEAL_CLASS1 added as #210: set a class to reveal gaia except for sp scenarios.
- New AMOUNT_REVEAL_CLASS2 added as #211: set a class to reveal gaia except for sp scenarios.
- If 210 or 211 is positive, ATTR_STORAGE_VALUE must be 0 to reveal; negate the class id to invert.
- Resource ids now exist from 0 to 239, with the range between 220 and 229 being free to use.
Weather Sound Updates
- Set language id 10812 to the rain sound effect resource id (default is 5323).
- Set language id 10813 to the snow sound effect resource id (default is no sound).
- If a language id is unset or otherwise invalid, the default is used.
- Sound effects should be relatively low volume to avoid disruption.
- Each sound effect should be between 5 to 10 seconds and loop naturally.
Animated Water Updates
- Water terrain slp files must be valid with no player color data added.
- To prevent flicker, please avoid excessive dithering with alternating pixel colors.
- Each slp will be 289232 bytes in size with 100 "frames" that form a 10x10 grid if valid.
- If an slp contains invalid data, the terrain will still be rendered, but not animated.
- To customize highlights, replace slp file offset 0x1C (4 bytes, 0x74, 0x65, 0x72, 0x00):
- Set byte 0x1C to the brightest normal palette index to highlight (default varies).
- Set byte 0x1D to the first of 2 palette indices to use as the highlight color (default is 0x16).
- Set byte 0x1E to a value that modifies frequency/randomness (powers of 2 like 0x20).
- Set byte 0x1F between 0x01 and 0x0F to enable terrain underwater or 0x00 to disable.
Chat Message Updates
- Added ">[1-8] Message" to send a message to a specific player color.
- This can be used with humans or to send taunt commands to specific AI players.
- For example, to send a message to red, type >2 Hello!.
- The main chat window horn buttons now also block text messages from players.
- Previously, the horn buttons only blocked audio taunts and flare sounds.
- The !mute command remains unchanged and only blocks audio taunts as before.
- Text messages from blocked players are still shown during a vote panel.
Core Updates and Fixes
- Fixed general patrol behavior (click back and collapse) and group movement.
- Fixed patrol behavior for non-ranged siege weapons like rams.
- Fixed repair for non-moving objects by reducing distance from 2.0 tiles (non-scenario).
- Fixed active, non-patrol, grouped units from improperly assisting nearby.
- Fixed gates removing nearby building foundations when construction begins.
- Fixed garrison behavior for active formation groups to adjacent buildings.
- Fixed unexpected idling behavior for aggressive units after ungarrison.
- Fixed statistics/score data when units are lost with a transport ship.
- Fixed player color and team sync when the host selects a scenario in multiplayer.
- Fixed save/restore of ATTR_HEALING_RATE, which herbal medicine depends upon.
- Fixed the object-data-carry value for AI farms and fish traps.
- Fixed transferring taunts to AIs while playing coop multiplayer.
- Fixed issue where AI attack group units glide when coming to a stop.
- Fixed issue where AI stand-ground ranged units idle while retargeting.
- Fixed issue where AIs on Nomad fail to receive extra TC wood on Hardest.
- Fixed issue where AIs would fail to position 2x2 farms properly for mods.
- Fixed issue with retaining blacksmith upgrades for gaia units in scenarios.
- Fixed train placement for large objects like rams when a building is walled in.
- Fixed improper window position when switching resolution to start gameplay.
- Fixed issue where AIs in multiplayer scenarios did not receive hardest resources.
- Fixed issue with tribute tax mishandling under certain conditions.
- Fixed issue where AIs would crash the game with certain object ids.
- Fixed issue with excessive screen jitter when scrolling across the map.
- Fixed issue with mouse clicks, where the focus would be shifted below the pointer.
- Fixed issue with auto-retasking, where villagers would idle in certain map regions.
- Fixed friend-or-foe color swapping after a recorded game ends.
- Fixed friend-or-foe color swapping for the victory timer text.
- Fixed boar attack response failure to untargetable object types.
- Fixed improper variability in monk conversion timing code.
- Fixed tech tree team units: change tech tree item Status from 2 to (10 + civId).
- Fixed gate HP drain after change ownership for each open/close event.
- Fixed issue with boars abandoning their attack despite being targeted.
- Fixed issue with certain units failing to automatically attack nearby targets.
- Fixed issue with pathing where objects pass through buildings and foundations.
- Fixed issue where allied villagers would randomly be visible on nomad starts.
- Fixed issue with framerate/speed inconsistencies after multiplayer unpause.
- Fixed issue with the accuracy of the client spectator counter display.
- Fixed issue with the minimum position of the music volume option slider.
- Fixed issue where the game may crash due to an internal AI attack response.
- Fixed issue with multiple selection, where the stat framerate would collapse.
- Fixed issue where AI attack behavior could cause a command overflow desync.
- Fixed issue where the presence of walls severely reduces pathing performance.
- Fixed issue where diagonal walls would not be placed as expected at the map edge.
- Fixed issue where holding "Alt" when right-clicking to garrison may target instead.
- Fixed issue with excessive pathing lag for min range unit retreating.
- Fixed issue with garrison arrow count updates for building foundations.
- Fixed issue where AI villagers may idle after construction in some cases.
- Fixed issue with longboats being unable to automatically attack on beach.
- Fixed issue with the color and visibility of treason minimap event flares.
- Fixed issue with palisade gate, feitoria, genitour, and siege tower hotkeys.
- Fixed issue with rms comment activation in regard to "if" statements.
- Fixed issue with rms cliffs placing terrain objects on replaced map tiles.
- Fixed issue with rms terrain desyncs from certain object creation orders.
- Fixed issue with AI memory overflows caused by extended scenario tributes.
- Fixed issue with rms resource consts for regicide and death match games.
- Fixed issue with unexpected stack object duplication when testing scenarios.
- Fixed core, animation, and pathing performance for various cpu levels.
- Fixed counting: ids 0-899 and 1000-1959 are countable, 900-999 are reserved.
- Additional bug fixes are included for the core game.
Get Enhanced AIs
Please see the AoKH Ladder for advanced AIs that support the enhancements of v1.5.
You can find links to AIs including The Horde, Barbarian, IS_Machine, and many more.
Previous Versions
Download UserPatch v1.4 (20150723-000000).
Download UserPatch v1.3 (20130606-180000).
Download UserPatch v1.2 (20130513-140000).
Related Software
To fix the colors for various 256-color games, please see DirectDrawFix.
You can find many advanced AIs and unique maps here.