Download link and version info


Nov 25, 2003
Revolution is now RevolutionDCM

The main version of Revolution is now RevolutionDCM, which combines Revolution with BUG, Dale's Combat Mod, Influence Driver War, and a couple of other handpicked components (all configurable). It's not just a straight merge, Revolution and these components have been adapted to work well together. RevolutionDCM also lives on sourceforge, where you can check out the source code and see all the latest changes.

The standalone version of Revolution is still available below, and it is very stable and fun on its own too.


What is Revolution?

If you're looking for information about what's in this modpack, check out the Welcome to Revolution thread which describes the different components. For a more "what's it like in the game?" perspective, check out the Stories and Screenshots thread. There's also an FAQ thread and a thread for information for modders looking to use Revolution in their own creations.



This mod should be placed in (civ install directory)\Beyond the Sword\Mods\Revolution\. Any other path may cause the game to be unable to find the Revolution.ini file, and then any changes you make to Revolution.ini will not appear in the game. Still confused, check out the step-by-step instructions, they were written for Warlords but still work if you use the equivalent BTS folders (thanks glider).

Any files you have placed in your (username)\Application Data\My Games\Beyond the Sword\Custom Assets folder may cause the game to crash or not function properly. You should remove these files unless you know how mods work.

Clear out your cache! Delete folder (username)\Application Data\My Games\Beyond the Sword\cache.


Standalone BTS 3.17 version

(The most up-to-date version of Revolution is in RevolutionDCM)

The standalone version of Revolution for BTS 3.17 with Solver's unofficial changes and Better BTS AI:
Revolution 1.65bts

The sources for this version are available here.

Maps and Scenarios for Revolution

Check out what's available in this thread and contribute some of your own!

Other BTS versions

The following are DLLs are available here:
- 48 civ DLL for those with more civ types defined
- 18 civ DLL for use with custom maps, though Revolution works better with more civs so updating maps to support 34 civs would be better when possible.

Revolution 1.52 for BTS 3.13


Last Warlords version
for Warlords 2.13
Revolution 1.00w
This version comes with the 24 civ dll standard.

Last Vanilla version:
Revolution 0.6a for Vanilla 1.61 Note that this may not work for the latest version of Vanilla, it's for 1.61.


Other Mods with Revolution:
(If you would like your mod project added to the list, just request)

Legends of Revolution: The Unofficial Expansion Project.
Legends of Revolution by phungus420 is a coherency driven, stable "expansion pack." If you enjoyed the change to BtS from Vanilla, check out Legends. Link

Rise of Mankind
Rise of Mankind by zappara is a realism-minded mod which adds more techs, units and complexity to BtS, including RevolutionDCM. Link

Next War Tritium
Merge by Duneflower of the official Next War Epic Mod, RevolutionDCM, and some CIV Gold content, along with extras! Link

Community Civ V
Modpack by ThomasSG and team which aims to take Civ4 to a new level! Includes RevolutionDCM. Link

Giant Earth Map
A giant map of Earth, now including RevolutionDCM! Link

Dune Wars
Dune Wars by keldath and team moves BtS from Earth to the Dune universe, complete with large deserts, sand worms, and RevolutionDCM! Link

Created by Hephaistion, HephMod adds a few well-tested pieces particularly for the medieval period. Link

Overlord 2
Created by keldath, lots of new features and mods including Revolution Inquisition. Link

NextWar: Revolutions
Created by jkp1187, combines jkp's Next War mod and Revolution. Link
Change list: (month/day/year version was released)

Version 1.65b 11/09/08
Spoiler :

Added GlobalDefinesAlt.xml, CIV4UnitInfos.xml to mod files
Removed from mod files (no longer different than default)

- Edits from Unofficial Patch

- Edits from Unofficial Patch

Version 1.65 11/08/08
Spoiler :

Added Revolution_Init_CIV4GameText.xml

- Merged in Better BTS AI 0.41
- Merged in Unofficial patch 0.21
- Added new rebel AI section to city building decisions to help rebels build more units

- Removed calls to RNG from bribe cost computation, caused OOS errors in MP (reported by Jean Elcard)

- No longer give spies, espionage points to rebels when no espionage is on (reported by Jean El

- Added translation from Caesium

Version 1.64 10/25/08
Spoiler :

New loading screen by Headlock!
Added DynamicCivNames.xml to mod files

- Moved setIsMinorCiv to CvTeam (fixes bug reported by Thomas SG)
- When a civ goes from minor to full they now stay at war with every full civ they've met until they negotiate a peace treaty (requested by glider1)
- Reduced shared war relationship boost resulting from wars kept after starting as minors (declared wars work same as before)

- Changes to support move of setIsMinorCiv
- Changes to rev popup text for translation (requested by Chechu)

- Changes to support move of setIsMinorCiv
- Some BarbCiv free units will now run UNITAI_ATTACK_CITY
- Half of BarbCiv COUNTER units now switched to ATTACK AI so they don't wait in capital for civ to build an attack unit to lead them

- Changes to support move of setIsMinorCiv

- Switched all naming logic to work off XML strings in DynamicCivNames.xml to allow localization

- Changes to support move of setIsMinorCiv

- Fixed bug when civs don't have units defined for every class (reported by Keldath)


Version 1.63 07/30/08
Spoiler :

Merged in Better BTS AI 0.35

- Fixed bug which occured when DynamicCivNames was not running

- Fixed bug which occured when DynamicCivNames was not running

- Espionage sliders now divided by 10 at end of automation to make resetting easier

- Merged in Raw Yields from Bug 3.0 to replace old Raw Commerce
- Fixed bug where RevStatus bar in city screen was not updated to use new trend method

Version 1.62 07/12/08
Spoiler :

Merged in Solver's unofficial patch 0.19
Merged in Better BTS AI 0.21

- Moved python notification of victory to support stopping automation in time to see end of game screens
- Moved python notification of first contact to before opening diplomacy window to improve appearance of war declarations on first contact
- In CvPlayer::setIsMinor, an ex-minor civ now meets all civs they had already encountered during the game

- Switch from minor to full now checked when tech acquired instead of at start of turn (fixes bug reported by Tboy)
- Changes due to improvements in SDK CvPlayer::setIsMinor

- Changes due to improvements in SDK CvPlayer::setIsMinor

- Automation now cancels when somebody wins the game so you can see the replay etc
- Fixed issue with end of automation when your civ dies in automation then is reborn as rebels

- Fixed RevWatch button not showing (reported by keldath)

Version 1.61 06/25/08
Spoiler :

Merged in Solver's unofficial patch 0.17
Merged in Better BTS AI 0.2

- War weariness now decays faster (like if at peace) if enemy has no military units (typically a rebel with only spies)
- Created CvTeam function to return number of military units of member players
- Fixed important bug in handling of AreaAI in the presence of minor civs the player hasn't met
- Changes to debug mode output

Version 1.6bts 06/22/08
Spoiler :

Updated to BTS 3.17
Added Solver's unofficial patch from 6/21
Updated the merging and SDK documentation ... long overdue

- Changes to how wars between minors are handled when changing minor status
- When a minor civ becomes full they may now choose to keep an existing war active, and other players may also choose to keep wars active (human player can choose to declare war in the "nice to meet you" diplo screen)
- Partially moved militaristic barb civ war declaration choices into SDK, now based more on current war plans, history between players, and uses a better measure of proximity plus integrates with above StartAsMinors feature
- Added CvGame::changeHumanPlayer which transfers all player options (requested by TheLastOne36)
- Added CvCity::getRevIdxAverage and related functions which contains a rolling average of the cities revIndex
- Added stability index, average for CvPlayer and exposed to Python
- Modified debug mode output for various forms of testing
- AI: Fixed Firaxis bug in CvPlayerAI::AI_playerCloseness using Fix A from Better BTS AI discussion thread
- AI: Added several other changes to how closeness is handled from Better BTS AI due to above fix

- RevWatch religion category now split into good State Religion and bad Non-state Religion
- RevWatch trend of improving/worsening now based on comparison to rolling average, not just sum of local factors
- Beginnings of implementation of civ stability index
- Nerfed city distance effects a little in .ini
- Reduced not connected to capital penalty, capped it for later/larger cities
- Fixed debug assert failing when state religion is -1

- Improved support for Start As Minors option, barbs without writing can now get settling benefits without becoming full civs
- Added new variable to determining when to attack the first civ they can contact
- Changed order of checks when determining whether a barb civ can build a unit to satisfy debug asserts
- When giving barb civs units that are intended to be attackers, unit AI now forced to be something other than city defense
- Minor barb civs now get more attack units, particularly in later eras, higher levels
- Minor barb civs don't get free scouts in the new world
- If you control a militaristic barb civ when it settles into a full civ, you now control war declarations

- Added conversion for new class of settled but still minor barbs

- Changed order of checks when determining whether a player can build a unit to satisfy debug asserts
- Fixed bug in logic canceling all wars on death, no longer cancels wars against minor civs

- Reworked messy functions for determining what rebel types to spawn
- Added debug wrappers for above functions
- Rebels spawning in countryside now get more attack units, fewer defense units
- Modified changeHuman to use new SDK method

- Fixed bug causing StartAsMinors to only work if DynamicCivNames was also enabled plus show incorrectly in active components popup (reported by Cybah)

- Improved scoreboard mod so that by clicking on the bottom string you can alternate between long and short scoreboard display. Bottom string now says 'More' if there are undisplayed civs, 'Less' if it can shrink based on your settings
- Changed artwork for RevWatch button (thanks to Ekmek)
- RevWatch button now uses a blank style so it doesn't switch to fist when rolling over

- Added several new tags for RevWatch

- Added two new tags for scoreboard mod

Version 1.52bts 06/02/08
Spoiler :

- Fixed bug with placement of some team init logic causing save loading problems
- Fixed unit flags and other art not updating when changing a living player's civ, many thanks to jojoweb for the code! You can now successfully change the civ type and leader for any player in the game using Ctrl+Shift+P

- Added function to reset a player's name to default to support new ability to change players mid game

- Changes to support changing players mid game

Version 1.51bts 06/01/08
Spoiler :

Game options no longer forced from XML, will now be remembered from game to game. The first time you start up with 1.51 things may be weird though, so choose a Custom Game to straighten out options.
Added Bhuric's 1.21 unofficial patch

- Removed repetitive war declarations by barbs on new players
- Changes to debug output of warplans
- AI: Updated civic religious rev index effect calculations (by ocitalis and jdog5000)
- AI: When Start As Minors is selected, AI will now weight open borders tech (Writing) increasingly high as it meets more full civs
- AI: Rebels remember and celebrate war success more, will make them more willing to continue the fight
- Fixed multiple issues with war plans for minor civs and barbs against other players
- A minor civ being spawned no longer cancels sneak attack plans for other players
- Split up some large blocks of Revolution code with comments so that changes to sections can be more easily dated
- Updated comments for CyUnit::setFortifyTurns, is not actually used by AIAutoPlay anymore
- Moved Revolution game options to end of list, fixes gold trade bug (reported by BobTheTerrible and others)
- Fixed bug where a BarbarianCiv would not settle into a full civ in reaction to losing its capital because capital was originally built by barbs, loss of capital in this circumstance now counts as a lost city
- Improved handling of break for war-weariness for rebels, now works as if they are never on truly foreign soil
- Added AIAutoPlay tweaks by mrgenie

- Fixed rare bug with 1 tile island rebels when there are no actual rebels to spawn (reported by glider1)
- Rebels now use WARPLAN_TOTAL, now will not accept peace as readily
- Fixed bug in choosing revolt type when a holy city has been destroyed
- Added starving rev index increase for when drawing down granary stores, much smaller than the huge effect when pop shrinks
- Reduced colony effects for single city islands, especially when anywhere near capital
- Increased brightness of rev index strings, now more a bit easier to read

- Fixed rare bug when cleaning up barb units near a newly formed minor civ (reported by glider1)
- Main BarbCiv attacks now use WARPLAN_TOTAL, now will not accept peace as readily
- Lowered bar for later era minor barb civs to settle based on population
- If city has culture, new minor civ gets some culture in city and plot
- Improved allocation of culture when barb city was originally built by someone else, captured by barbs

- In debug mode all minor civs show up in scoreboard now
- Reworked scoreboard display logic to support new config option for max lines to show in scoreboard loosely based on Zebra9's Top Scores mod comp
- Added new config option in Addon.ini to control how many lines to show in scoreboard, defaults to 20
- Fixed overflow of building list onto rev index bar in city screen
- Improved check for when to show Revolution add-ons

- Improved detection and removal of rebellions with no cause
- If a rebel has only spies remaining, there's now a 10% chance a spy will die every turn so they disappear a little faster

- Moved Revolution game options to end of list

Version 1.5bts 05/23/08
Spoiler :

Merged in Bhuric's 1.2 unofficial patch
Added to handle the start as minors feature

- Added two new types of city anger, one for when RevIndex is high and/or worsening and temporary anger (like for whipping) for when you reject rebel requests
- Updated the mouseover scoreboard player attitude popup text showing who's at war with who
- Added mouseover scoreboard player attitude popup text showing who's whose worst enemy
- Added mouseover leader face attitude popup showing at war with/ who's worst enemy
- Moved game options for rev mod components down on list as work around for hardcoded expected position of Unrestricted Leader option in Custom Game screen (reported by StormLord-711-)
- Quieted civic adoption messages for minor civs
- Made several Revolution get functions const
- AI: motherlands now hate their rebels more strongly, will make rebels their worst enemy much more often
- AI: a high rev index now leads player to consider city threatened and increase defenses
- AI: players whose only war is against their rebel more likely to adopt Crush AI, should cause motherland to hunt down and destroy rebels quickly when they have the advantage and extra troops
- AI: rebels much more likely to adopt the Dagger AI strategy (real focus on city attack, military)
- AI: the AI now considers the Revolution Index effects of religious civics when deciding which civics to adopt (code by ocitalis)
- AI: AIs will build fewer transports when engaged in a land war or when their best transports cannot enter ocean terrain, should reduce largely useless galley spam
- AI: Decreased adoption of AI strategies GetBetterUnits and Peace for minor civs since they're always at war, should make them a bit more aggressive in the early game and when they don't have many resources
- Fixed bug in CvCityAI::AI_neededDefenders (see unofficial path thread for more info)
- Added some Revolution specific debug info when game is running in debug mode

- Updated local rev index calculation such that new RevIndex induced unhappiness doesn't count strongly towards unhappiness induced increases in rev index, breaking a potentially vicous cycle
- LocalRevIndex updates (and therefore so does Improving/Worsening) when you open RevWatch so it will now respond to changes during your turn
- Added replay messages for when a violent revolt breaks out
- Fixed bug with a couple uses of old python-based LocalRevIndex
- Added rev index debug output to RevWatch when game is running in debug mode
- All revolt data now held in data structures stored in CyPlayer script data, revolts are now launched from this stored data and it will allow much better handling of subsequent revolts

- Added replay messages both for creating minor civs and settling to full civ
- Fixed bug where barbcivs counted contact with dead players, caused improper settling when minor status was stripped from dead rebels
- Lowered population for early cities settling in new world under new world policies 1 and higher
- Decreased odds of barb city settling in new world scenario in early eras
- Last few barb cities in a large new world will now stay barb much longer

- Added function to standardize penalty for denying a peaceful rebel request

- Moved all city acquired handling here from Revolution
- Created two functions to handle the different aspects of city acquisition, one for bonuses for successful rebels and the other for propogating rev index effects
- Fixed bug with timing of recording current civics for human player, human player's name changes and other civics driven effects will now occur correctly
- Moved Start As Minors pieces to new file

- Added handling to avoid redundancy in names like "Roman Empire of Rome" (reported by Arwon)
- Fixed bug in naming when civ's capital name has multiple words
- Added config option to leave a custom civ name for human player alone
- Updates to provide more interesting names in Ancient and Classical Eras: start as Tribe, more use of City State (suggested by johny)
- Added messages to alert you when your civ name changes

- Removed explicit references to tech Writing, minor status instead hinges on ability to sign Open Borders
- At the begining of a normal game, all players start with an extra warrior for defense

- Merged in mrgenie's changes from WoC version

- Changes to support new StartAsMinors module

- Removed definitions of python data containers moved to SDK (like RevIndex)
- Removed Writing, no longer needed

- LocalRevIndex now updates if you make relevant changes in city screen, so improving/worsening bar and text now change during turn


Version 1.42bts 04/13/08
Spoiler :

Added to mod files
Added to mod files to handle events necessary for the support of Revolution
Updated all mod components to remove event handlers when launching a new game or loading a save. Fixes bug reported by Cybah with Revolution etc running when not selected in Custom Game screen under certain circumstances.

- Moved assimilation logic to RevEvents
- Moved other event logic (city lost, religion founded, etc) to RevEvents
- Removed obsolete config options that are no longer really supported
- Removed config options for rev index constants which are not really meant to be changed

- Moved civic functions to RevCivicUtils
- Moved events handling to RevEvents
- Sorted remaining utility functions into more coherent groups

- Attitude decays from Revolution events now scale with game speed

- Some minor code cleanup

- Added section to hold RevIndex constants

Version 1.41bts 04/12/08
Spoiler :

Added to mod files, currently a place holder for a future class for keeping track of revolts
Added RevolutionDLLText.xml to mod files for game text used by the DLL
Added Civ4GameOptionInfos.xml to mod files to support use of in game options
Added RevolutionScreenText.xml to mod files
Mod now has modular loading enabled by default

- Contact civ help text (mouseover scoreboard) now also tells you which other players a civ is at war with. Very useful when civs come knocking askin about becoming your vassal!
- Added official game options for the four main Revolution mod components (default to on), plus the start as minors feature (defaults to off). These can now be enabled/disabled in the Custom Game screen.

- Improved check for maxCivs, now allows revolts to join players already alive
- Added config option to place Rev Watch button at the left of the line of advisor buttons, WatchButtonInLine in Revolution.ini defaults to False
- Fixed bug with text in Rev popup when offering peace in exchange for surrender of cities
- Fixed bug where minor civ rebels could offer peace in exchange for cities
- Fixed crash when attempting to bribe a city when you didn't have any cities (reported by keldath)
- Fixed a couple small bugs blocking assimilation to player slot 0 (normally the human player ...)

- Fixed bug where maxCivs setting was ignored (reported by Serak)
- Fixed bug where wild animals could be taken over by barb player in some circumstances (reported by BobTheTerrible)

- Added special naming for teams and permanent alliances (requested by rene-ryou)
- Added config option to disable team-based naming

- Added support for game options

- Added support for start as minors game options

- Added support for option to move Rev Watch button to in line with other advisor icons
- Score board now shows which civs are rebels using the red fist icon

- Fixed bug where Glance and Change tabs would error when all civs are minor civs
- Fixed bug where naming your leader "jdog+5000" would cause Glance tab to show relations improved by 5000
- "Change" tab label now comes from XML
- Shrunk size of tab labels since there are now so many

- Reversed some changes which caused game to fail to find mod files in Russian version of Windows (reported by Deon)

- Moved TXT_KEY_REV_CONTACT_MINOR to RevolutionDLLText.xml

Version 1.4bts 03/13/08
Spoiler :

Added by glider1, by Almightix to mod files
Added, Civ4lerts_CIV4GameText.xml from the BUG mod (originally written by DrElmerGiggles)
Added Addons.ini to house config options for customizable screens, Civ4lerts
Switched to from the YAUGMod
Moved readmes into a new docs folder
Mod now comes with GNU Public License (which it should have basically from the beginning based on the CustomEventManager)

- Fixed potential error when all civ/leader types were taken

- Fixed bug in violent cultural revolts where revolting cities were trying to rejoin their cultural owner. Now works properly if owner and cultural owner are already at war.
- Fixed bug where a minor civ would be labeled a rebel for having its cultural cities revolt against their occupiers.

- Changes to MinorUntilWriting config setting after the first turns of the game will be ignored

- Added new "Change" tab by glider1

- Added the raw commerce/production mod by Sevo/EmperorFool

- Fixed bug in discardCity, use 'pop' for dictionary instead of set only method 'discard'
- Fixed issue causing errors after reloading Python modules mid-game

- Added Civ4lerts initialization

Version 1.36bts 03/7/08
Spoiler :

- Fixed issue in CvTeam::declareWar causing minor civ war declarations to inappropriately effect relations after settling to full civs

For older changes, see the ChangeLog in the download.
Update to 0.90w complete.

Major bug fixes in Revolution, fixing both reported problems with popup handling and turns not ending after a revolution. Turned down the small revolts feature, and you can also now turn it off if it's annoying you. Also, significant improvements and additions to the DynamicCivNames logic. See the full change list above for more details.
Great new update. Will try it out soon :) Just wondering: did any of my naming suggestions make it into the update?

Quite a few naming suggestions made it in, although I don't remember who they came from ... :crazyeye:

Let me know what you think of the improvements.
Update to 0.95w complete.

This is a major upgrade with quite a few big changes (the full list is in the second post):

- Delayed revolts, where rebels spawn after the turn when they make their demands and the to strike first
- Rebel units will always spawn outside of cities and have to fight for them
- Improved culture initially given to successful rebels so their cities won't starve as often in late game
- Added ability to bribe rebellious cities at any time, not just when they approach you, so you can head off rebellions if you're wealthy enough
- New option to leave barbarian cities alone on unexplored continents, so on Terra maps there will be empty space with BarbarianCiv
- Fixed the obnoxious cities drawing as ruins bug that's been around forever
- And a whole lot more ...
Just completed the implementation of your mod's version 0.9 into mine. :D

Now I know what to do tomorrow :)
WARNING!!! The first version of 0.95w posted had some debugging logic turned on that will cause your game to hand you control of any civ about to under go a revolution ... while this can be fun if you're expecting it, it's not the normal way to play :crazyeye:

This has been corrected as this post, if you downloaded it earlier you should get the new version (or change the True on line 2130 of to False).
The changes look great. I hope somebody will update the RevAI to .95. I don't enjoy playing with the default AI anymore so I'll either be sticking with .90 or waiting for the next version.
Personally, I'm basically just waiting for BTS new AI ... the way some people (Kael, Solver at Apolyton) have talked about it, playing in Warlords almost feels like like a cheap knock-off now. If it was just Firaxians then I'd take it with a grain of salt, but when hardcore fans are saying it too ... we'll see I guess, but it should at least be a step up from the BetterAI mod which is saying something!
True. I have expected the BTS AI to be at least on-par with a bug-free version of the latest Better AI (the latest one that Blake worked on, anyway), and hope it's even better. It should alleviate the need to release a RevAI to keep picky people like me playing. ;)
Version 1.01bts posted! Note that it's for 3.02, hasn't been tried with the little update Firaxis sent out yesterday. My bet is it still works, but it doesn't include any changes from that.

It should be considered beta, there may be bugs in pieces of code that don't fire frequently but it does properly settle barbcivs and launch revolutions :cool:

I'd be particularly interested to hear it those with CivGold have a smooth experience. I adjusted some pieces from the prior version so that they might now work for Golders, but I can't test it ... let me know.
Top Bottom