See the full ChangeLog in the source for a comprehensive list of all changes.
Download links for the latest release can be found on the download page.
Welcome to Freeciv 3.1.0[]
Thanks again to all our developers, who continue to work so hard.
This release includes lots of changes relative to 3.0.x; the significant ones are outlined below. Bug fixes also included in the 3.0 line are not listed. Those who are interested in seeing the detailed changes should check the ChangeLog file.
This release is still in a beta stage, so there are some known issues (see below).
WHAT'S CHANGED SINCE 3.0[]
The major changes in Freeciv 3.1 are new Qt6- and gtk4-clients, improved balance for civ2civ3 ruleset, experimental meson based build system, and a whole lot of extra flexibility to create custom rulesets.
As is usual for major releases, 3.1 clients cannot interoperate with pre-3.1 servers, and vice versa. Most pre-3.1 savegames can however be loaded into 3.1, and in most cases, the supplied rulesets have not changed so much as to make it difficult to complete a game started with 3.0.x's rules.
Server / General[]
- Qt6 versions of the Qt-client, Qt Modpack Installer, and Ruledit are supported, and even the default in most cases HRM#892817
- Player authentication is supported by default GNAPATCH#7379
- Max number of regular players (not counting barbarians) is now 500. HRM#654973 HRM#677144
- Rally Points can be set for the cities HRM#838543
- Previously silent generic actions now have event message types, so can show up chat/messages/popup HRM#848791
- There has been many changes to what actions each keyboard key does, as required by changes in the actions themselves. See Controls in Help for updated info.
- Especially; Paradrop now has a key distinct from Pollution cleaning osdn#45958
- Adding local nation definitions now works properly osdn#44590
Changes affecting players (supplied rulesets)[]
- Experimental ruleset is no longer part of the main freeciv distribution. It's still available with modpack installer GNAPATCH#7625
- Submarines are now in the new Subsurface vision layer HRM#682506
- Huts on most rulesets (any ruleset that uses default huts behavior) can now result on reveal of the surrounding terrain osdn#42974
- By default, bombardment rate now gets reduced if the bombarding unit is damaged. This is relevant only for rulesets with such bombarding units, and ruleset might still use the old behavior instead of the new default HRM#821129
- The issue of Ships attacking Helicopters counting as land bombardment, when attack initiated from a city on land has been resolved osdn#43255
- Extraneous StartUnit roles cleared from supplied rulesets osdn#45878
- Rulesets except civ1, civ2, alien, and stub have new Eliminate Spy action, that is just diplomatic battle with no further actions osdn#46173
- Player looting dying player (one who lost gameloss unit) now get notifications about what the loot contains osdn#45152
- Messages from supplied lua scripts, such as handling unit entering hut tile, now have unit/city/tile links in place osdn#43389
- nations
- Esperant nation city list updated osdn#45762
- Palau nation added HRM#697041
- Texan nation city list updated osdn#46114
- Liege nation added osdn#46553
- Floridian nation added osdn#46657
- Game prefers not to select Chadian and Kanem-Bornu to the same game (i.e., they have been set to conflict) osdn#42135
- civ2civ3
- Ecclesiastical Palace is real secondary capital now HRM#872572
- Establishing trade routes give one-time bonus in Gold (used to give Nothing) osdn#42319
- Effects of Culture have been reworked osdn#42712
- The culture accumulated by each city increases its resistance in diplomatic fights against enemy agents (up to +50%).
- The culture accumulated by your nation increases the cost to bribe your units or incite your cities (up to +500%).
- Governments no longer get immunity against bribe or incite actions. Cities with a Courthouse or a Palace are now immune to incite actions.
- Increased the amount of culture granted by achievements (from 100 to 1000 in most cases), and the lead relative to second best player needed for victory (from 33 to 100%).
- Fortress and Airbase build requirements rearranged osdn#42709
- All military infantry units can build fortresses. All worker units can build airbases.
- The working time required to build a base is 2 times the movement cost of the terrain.
- Attacks against helpless defender never grant veterancy osdn#43101
- The chance to gain veterancy from combat depends on how challenging it was osdn#43203
- Reworked which of the naval units count as military ones, causing unhappiness osdn#45225
- Homeless diplomats may home themselves, to gain ability to bribe units osdn#45070
- Barracks and Sun Tzu affect Small Land units too osdn#47636
- Bribe Unit, Spy Attack, and Incite City give victim casus belli even when the actions fail osdn#46239
- Mountain movement penalty not applied on Rivers osdn#48713
- civ1
- Alliance clauses are no longer available HRM#768396
- Move costs on entering and leaving transports corrected HRM#850669
- Both units' hitpoints and firepower have been increased to 10 in all situations. Single hit still kill them, but AI understand this math a bit better osdn#43042
- Fortifying bonuses closer to civ2 HRM#871628
- Unfortified units in cities do not get the bonus
- Bonus is not cumulative with City Walls or Fortress
- civ2
- Alliance clauses are no longer available HRM#768396
- Move costs on entering and leaving transports corrected HRM#850668
- Fighters have real scramble bonuses HRM#923193
- Fortifying bonuses closer to civ2 HRM#871628
- Unfortified units in cities do not get the bonus
- Bonus is not cumulative with City Walls or Fortress
- multiplayer
- Unit move rates doubled HRM#654404
- The chance to gain veterancy from combat depends on how challenging it was osdn#43203
- alien
- Burrowing units do not make it impossible to attack other units in the same tile, even if general unreachableprotects setting is enabled HRM#824810
- The chance to gain veterancy from combat depends on how challenging it was osdn#43203
- Bribe Unit, and Incite City give victim casus belli even when the actions fail osdn#46239
- experimental
- Ruleset has been made ready to migrate under name goldkeep in freeciv-3.2 HRM#820950
- sandbox
- Various messages shown in the beginning of specific turn numbers HRM#732561
- Both parties need to know Writing before they can trade techs HRM#768209
- ICMB can hit anywhere in the world, from anywhere HRM#854014
- New Disrupt Supply Lines action to take move points from target HRM#852114
- Spies can simply (not as part of another action) eliminate enemy spies and diplomats HRM#859809
- Pillaging gives the victim Casus Belli HRM#874199
- Spies can Release Plague HRM#859160
- Spies can do Suitcase Nuke action osdn#41809
- Ecclesiastical Palace is real secondary capital now HRM#899242
- New Chichen Itza wonder allows city to build units that usually have population cost without the city shrinking HRM#900032
- Fortress can be expanded to a Castle osdn#41433
- Some Castles are placed on the map when it's generated osdn#41434
- Teleportation is possible via Ancient Transport Hubs randomly placed on map osdn#41557
- Living units of the Amêzârâkian Mysteries owner can heal other living units osdn#41671
- Nuclear attacks are now targeted against tiles, not cities osdn#41688
- Added Nuclear Submarine that can launch one tactical nuke each turn osdn#41689
- Added Treuga Dei Wonder that prevents all violent actions while it's active osdn#41677
- New Altar of The Divine Ruler wonder allows making units homeless osdn#41836
- New Mechanic unit can repair machine units, restoring 50% of their health osdn#41845
- Poison City actions may fail, as dictated by diplchance server setting HRM#924521
- Establishing trade routes give one-time bonus in Gold (used to give both Gold and Science) osdn#42319
- Added Space Elevator small wonder and Space Elevator Tether City Improvement osdn#43128
- Attacks against helpless defender never grant veterancy osdn#43101
- The chance to gain veterancy from combat depends on how challenging it was osdn#43203
- Reworked which of the naval units count as military ones, causing unhappiness osdn#45225
- Homeless diplomats may home themselves, to gain ability to bribe units osdn#45070
- Barracks and Sun Tzu affect Small Land units too osdn#47636
- Bribe Unit, Spy Attack, and Incite City give victim casus belli even when the actions fail osdn#46239
Changes affecting other rulesets / modders[]
- Scenarios can now ship ruleset specific datafile luadata.txt, and ruleset can ship parser.lua script to use that data any way it wants HRM#661635
- There is now two separate visibility layers able to hide a unit; Stealth and Subsurface HRM#679427
- "Bridge" rule options are now available for all extras, and are generally more flexible HRM#704288
- Multipliers can now have requirements that player needs to meet in order to give it nondefault value HRM#732522
- Ruleset can now limit how often a multiplier can be changed by new minimum_turns property HRM#908582
- New effects controlling build costs of specific targets
- Building_Build_Cost_Pct HRM#767451
- Unit_Build_Cost_Pct HRM#768130
- Added user-defined effects "User_Effect_1" ... "User_Effect_4" that do nothing by default. Ruleset is expected to make them usable by lua scripting. osdn#41745
- Ruleset has control over which clauses are available for treaties
- Whether it's enabled at all in the ruleset HRM#765945
- When requirement vectors for giver and receiver enable it HRM#768208
- Maximum number of Techs a ruleset can define has been increased to 250 HRM#776787
- Maximum number of Unit Types a ruleset can define has been increased to 250 HRM#778026
- New ruleset settings nuke_pop_loss and nuke_defender_survival_chance_pct to control destructiveness of nukes HRM#801780
- Mechanism for a ruleset to migrate under a new name over freeciv versions HRM#820924
- Ruleset now has control over city happiness' effect on civil war chance HRM#769075
- New DefenseMultiplierPct and DefenseDividerPct combat bonuses provide more granular alternative for existing equivalent integer bonuses HRM#809470
- New concept of Infrapoints that can be used to just place infrastructure instead of building it with units HRM#821956
- Improvements for higher granularity rulesets
- New output_granularity ruleset setting to support higher granularity with outputs (food/shield/tax/gold/science/luxury) HRM#822932
- Increased max values many ruleset settings can take HRM#825215
- Terrain transforming modes of Irrigate and Mine activities have been split to new Cultivate and Plant activities HRM#824074
- New NeverProtects unit type flag to override global unreachableprotects setting HRM#809471
- New extra removal cause Enter to provide better semantics for hut -kind extras HRM#802768
- New history_intereset_pml ruleset setting allows older (longer existed) history to count towards culture more than recent HRM#823245
- New AI trait Builder to adjust how much AI wants buildings (instead, e.g., units) HRM#825086
- Maximum number of ruleset author defined flags increased
- Unit class flags to 12 HRM#846122
- Terrain flags to 10 HRM#877497
- Some unit class flags have been unhardcoded, and removed
- CanPillage HRM#846557
- Move points taken after successful actions can be controlled by new effects
- Action_Success_Actor_Move_Cost HRM#846773
- Action_Success_Target_Move_Cost HRM#848435
- New effect Illegal_Action_HP_Cost to control HP loss after failed action HRM#879103
- New effect Popcost_Free to forgive population cost of built units HRM#659540
- How many tiles action Steal Maps reveals can be controlled by new Maps_Stolen_Pct effect, and steal_maps_reveals_all_cities ruleset setting HRM#873390
- Improved support for more detailed auto-attack rules HRM#850300
- New UnitState values available to be used in requirements
- InNativeExtra HRM#854185
- MovedThisTurn HRM#875439
- Maximum number of requirements in a requirement vector increased to 40 osdn#41661
- New requirement types
- CityStatus, currently only for checking if the city is controlled by its original owner (OwnedByOriginal) HRM#858238
- MinForeignPct that depends on number of foreigners in the city HRM#857904
- Activity that depends on unit's current activity HRM#870905
- DiplRelTile that depends on ones diplomatic relation to the owner of the tile (e.g. the tile target unit is on) osdn#42515
- DiplRelTileOther that depends on diplomatic relation between the owner of the tile and other player (e.g. the target unit owner) osdn#42522
- DiplRelUnitAny that depends on ones diplomatic relation with owners of units on tile osdn#42562
- DiplRelUnitAnyOther that depends on diplomatic relation between owners of units on tile and other player (e.g. tile owner) osdn#42563
- Defense bonuses from unit being fortified unhardcoded by new Fortify_Defense_Bonus effect HRM#867744
- NoFortify terrain flag unhardcoded HRM#877498
- CanFortify and Cant_Fortify unit flags unhardcoded HRM#877577
- slow_invasions ruleset setting has been retired as the same rule can be implemented via Action_Success_Actor_Move_Cost effect HRM#848684
- Amount of shields received from unit doing Help Wonder or Disband Unit Recover action can be controlled by a new Unit_Shield_Value_Pct effect HRM#874806
- Which cities are capitals is now declared for a turn - it can't change mid-turn. This also adds concept of secondary capitals HRM#871681
- Last remaining Base Flag, NoAggressive, has been turned to an extra flag to make it available for all extras HRM#897492
- The CityTile requirement can check if extras on tile are owned by the new Extras Owned value HRM#918819
- OneAttack unit type flag retired. Ruleset can implement it via an Action_Success_Actor_Move_Cost effect that takes all the movement HRM#847256
- Removed hardcoded rule that attack costs single move - ruleset can define move costs via effects osdn#41646
- New Heal_Unit_Pct effect to control how much Heal Unit actions heal osdn#41789
- Whether server setting telling that city has unlimited airlift also enables airlift when there's no capacity at all is now controlled by new airlift_from_always_enabled and airlift_to_always_enabled ruleset settings HRM#874937
- Introduced new combat bonus type CityDefensePct that overrides Defend_Bonus effect HRM#865084
- Success probability of Suitcase Nuke actions now shown HRM#920121
- It's possible to make Poison City subject to diplchance HRM#869738
- Whether opponents know about all Small Wonders player owns is now controlled by a new ruleset setting wonder_visibility.small_wonders HRM#924859
- Improvements to when unit gains veterancy from combat
- New ruleset setting only_real_fight_makes_veteran to prevent one from gaining veterancy from safe attacks (ones against helpless defender) osdn#43009
- New ruleset setting combat_odds_scaled_veterancy to make chance of gaining veterancy scale to the difficulty of the combat HRM#804347
- Rules that set firepower to 1 unhardcoded can now have the value suitable for the ruleset osdn#43041
- By the new tp_defense unit type setting, unit can be blocked from defending while it's inside a transport HRM#848689
- New min_trade_route_val ruleset setting, mainly to control if trade output can round down to zero, or is it always at least 1 osdn#43011
- Recycle Unit action has been renamed as Disband Unit Recover osdn#42959
- Unhardcoded unit regeneration special cases
- New Min_HP_Pct effect, to unhardcode minimum HP unit gets when in a city osdn#42699
- New Min_HP_Regen_2 effect, to unhardcode base healing, and healing bonus for fortified units osdn#44201
- Existence of at least one City_Vision_Radius_Sq effect in the ruleset is now mandatory, as city without any vision wouldn't work osdn#43647
- actions
- Completely new actions
- Spread Plague HRM#859148
- Spy Attack HRM#859163
- More Action Enabler controlled actions
- Pillage HRM#741274
- Fortify HRM#742419
- Build Road HRM#742986
- Convert Unit HRM#747765
- Build Base HRM#750400
- Clean Pollution and Clean Fallout HRM#850507
- Surgical Strike Building HRM#848643
- Surgical Strike Production HRM#864578
- Conquer Extras HRM#850508
- Enter Hut and Frighten Hut HRM#919139
- Unit Move HRM#919970
- Unit Make Homeless osdn#41622
- ..._Possible -effects replaced with action enablers
- Transform_Possible replaced by Transform_Terrain HRM#732503
- Irrig_TF_Possible and Mining_TF_Possible replaced by Cultivate and Plant HRM#735703
- Mining_Possible replaced by Build Mine HRM#753716
- Irrig_Possible replaced by Build Irrigation HRM#754873
- Transport loading/unloading is now controlled by revamped actions
- Transport Alight - Unload to the same tile with the transport, cargo acting HRM#848430
- Transport Unload - Unload to the same tile with the transport, transport acting HRM#848492
- Transport Disembark - Unload to adjacent tile, cargo acting HRM#848682
- Transport Board - Load to the transport at the same tile, cargo acting HRM#848637
- Transport Embark - Load to the transport on adjacent tile, cargo acting HRM#850022
- Suicide Attack is now separate action from Attack allowing it to be configured more freely HRM#783336
- Some actions are duplicated, tripled, or even quadrupled so that the ruleset can define essentially same action to behave differently in different situations
- Transport Disembark HRM#850550
- Conquer City HRM#850551
- Bombard HRM#851451
- Conquer Extras osdn#41513
- Heal Unit osdn#41602
- Unit move actions HRM#920420
- Explode Nuclear, Nuke City, and Nuke Units are now three separate actions, so their rules can be controlled separately HRM#850219
- Actions formerly targeting both building and current production split to actions that target some building, and actions that target current production HRM#852132
- More actions have maximum ranges, from the actor, that they can target to
- Explode Nuclear HRM#854013
- Airlift Unit (now it's possible to have a limited range) HRM#854978
- Nuke City and Nuke Units HRM#859845
- Help Wonder and Disband Unit Recover HRM#875249
- Paradrop Unit range migrated from the unit definition HRM#879114
- Number of actions with different side effects split from the former Paradrop Unit that is now free of those hardcoded side effects osdn#41565
- Some actions have minimum ranges, from the actor, that they can target to
- Nuclear attacks osdn#41701
- Added user-defined actions "User Action 1" ... "User Action 4" that do nothing by default. Ruleset is expected to make them usable by lua scripting. HRM#852112
- More actions supported by Casus_Belli_Success
- Pillage HRM#874197
- Move actions osdn#41627
- Paradrop Unit actions HRM#921213
- New Casus_Belli_Complete effect, supporting just Pillage action HRM#875465
- Actor unit properties can be used as Casus Belli requirements HRM#921209
- For some actions it's now possible to give a list of other actions that block them. This replaces old force_* entries
- Blocking regular move action HRM#919110
- Blocking actions that formerly had partial implementation via 'force_* entries HRM#919172
- For some actions it's now possible to give a list of other actions that are automatically attempted after it osdn#41524
- Ruleset now controls what actions unit tries in an attempt to escape the tile in some situations
- When city gets destroyed, and unit can't survive on tile any more HRM#920149
- When escaping stack death HRM#920951
- For some actions, ruleset has the control over their target kind
- Whether Pillage actions consider Tile or the specific Extra their target. This makes a difference, e.g., for any requirements referring to the "other" player - whether it's the tile owner, or the extra owner HRM#919305
- Unit Explode Nuclear and Unit Nuke City actions have been merged, with ruleset selecting between the old behaviors by defining the target kind osdn#41552
- Whether an diplomat action is subject to diplchance server setting is now controlled by new diplchance_initial_odds ruleset setting. This is still supported for a limited set of actions HRM#849492
- Home City action enablers can be set to allow rehoming also NoHome units. The unit flag now only means that unit is initially built homeless osdn#41621
- Nuclear attack units can be set not to get consumed in the attack. Makes sense when it's actually ranged attack launcher unit osdn#41681
- Found City can be set not to consume unit HRM#931180
Changes affecting lua scripting[]
- Lua engine has been updated to version 5.4 HRM#743677
- Luasql files have been updated to match version 2.6.0 HRM#890257
- owner property added for lua's tile data HRM#874440
- government property added for lua's player data osdn#43294
- Direction variables are now properly included to savegames HRM#880895
- Unit upgrade / transform APIs osdn#42666
- Unit:veteran
- Unit_Type:obsoleted_by
- Player:can_upgrade()
- Player:can_build_direct(.. Building_Type)
- Player:can_build_direct(.. Unit_Type)
- Unit:can_upgrade()
- Unit:transform_problem()
- Unit:upgrade()
- Unit:transform()
- Other new methods
- city:is_primary_capital() HRM#904702
- action:target_kind() tells what the action was targeted at osdn#41446
- tile:extra_owner() returns owner of an extra on tile osdn#41445
- find.action() to get an action osdn#41519
- edit.perform_action() and Unit:perform_action() to force unit to perform an action osdn#41520
- effects.unit_bonus() to get value of the effect for the unit (unit matches requirements) osdn#41746
- effects.unit_vs_tile_bonus() to get value of the effect for the unit on tile osdn#41749
- Tile:show() and Tile:hide() osdn#42973
- City:create_building() and City:remove_building() HRM#695117
- Player:give_bulbs() osdn#42502
- City:link_text(), City:tile_link_text(), Unit:link_text(), Unit:tile_link_text(), and Tile:link_text() osdn#43343
- find.achievement() and find.disaster() osdn#43594
- find.player(name) osdn#43705
- City:remove() osdn#44229
- Extended methods
- edit.unit_move(), edit.unit.unit_teleport(), Unit:move(), and Unit:teleport() can take additional parameters dictating potential side effects of the move (e.g. if there's transport or a hut in the target) osdn#41730
- create_unit_full() can place unit inside a transport it would not board at the place osdn#44834
- New signals
- Family of action_finished_... signals emitted after the action HRM#817749
- player_phase_begin, player_phase_end, player_alive_phase_end osdn#42663
- default.lua now constructs the "out of fuel" message osdn#43341
Changes affecting server operators[]
- Bzip2 savegame compression is deprecated. Use another compresstype GNAPATCH#7112
- Support for loading games saved by freeciv versions older than 2.3 dropped GNAPATCH#5591
- Freeciv build can now support both the raw and json network protocols, not just either one HRM#664002 HRM#745596
- Hack -level users can run lua -commands in a new permissive context with unsafe-cmd and unsafe-file commands HRM#692001
- New odbc backend for player authentication database HRM#769096
- New server settings
- incite_gold_loss_chance and incite_gold_capt_chance control loss of money reserved for inciting revolt when it fails HRM#797697
- New server command playernation for setting nation and leader name HRM#768292
- Custom database.lua location is now supported osdn#41880
- /reset game now works correctly in respect to setting provenance HRM#692373
- zstd compressed savegames are now supported (compresstype value zstd) HRM#852626
- New iphide server setting to not send IPs of players to each other osdn#43683
- /metamessage server command has been deprecated. Use metamessage setting, available since freeciv-3.0, instead osdn#44107
General[]
- New log level "warning" GNAPATCH#7373
AI[]
- Extended higher resolution AI want tracking introduced in freeciv-3.0 to more cases osdn#45700
- Tex AI module has been generally improved. GNAPATCH#8067
- Run military advisor in the second (not the server's main) thread osdn#697715
- Workers dying while tex is looking task for them no longer cause problems HRM#824565
- Tex module is built in by default HRM#827157
- AI has some rudimentary support for handling Ocean Workers HRM#664183
- It depends on exact action commited against AI how much love is lost HRM#875910
- AI difficulty level Handicapped renamed as Restricted HRM#872165
- AI difficulty levels that are supposed not to see through Fog of War now respect that also when examining potential Paradrop targets osdn#41722
- AI remembers its current Wonder building plans over game save/load cycle, so it not abandon Wonder building on savegame load as easily HRM#857459
- Hard level AI is no longer allowed to set tax rates freely, but max rates rules apply to it osdn#42333
- AI's want for various things is not as easily clipped as before (max want is now ten times bigger), so it can distinguish between high and extremely high want osdn#45277
- Autosettlers improvements (affect also human players)
- Considers building also other kind (cause) extras as dependency of the wanted extra. Previously considered, e.g., building only Roads as dependency of other Roads osdn#42492
Clients[]
- gtk2-client and modpack installers have been dropped GNAPATCH#7019
- gtk3-client considered unmaintained. Use gtk3.22-client instead osdn#42981
- sdl1.2-mixer support dropped GNAPATCH#6246
- New gtk4-client added HRM#637945
- City dialog shows if a tech has ever been stolen from the city HRM#657146
- Improved the way untargeted action gets listed in the target selection dialogs HRM#862482
- City Governor can be asked to maximize city growth speed HRM#839704
- New "Pop up actions last move to allied" client option HRM#875939
- Audio volume control added HRM#885685
- Fast auto attack support added osdn#42719
- Most clients have support of drawing number of units in the stack instead of just sign that there's more than the visible one HRM#911906
- Number of new columns added to the nations reports osdn#42309
- Single-step goto handled like a (single-step) move from the keyboard, e.g., opening action selection dialogs, and not similarly to long range goto osdn#44496
- New Connect Maglev connection building type added osdn#41990
- Qt
- Client-side Rally Point retired, and replaced by server side rally points usage HRM#840514
- Fonts settings rearranged HRM#772029
- "Go to and ..." now allows sub target (e.g. exact extra to build) selection HRM#877098
- Added trade related columns to goto dialog HRM#903720
- Qt-client's special settings file is now versioned, so that different freeciv versions with different file content do not interfere each other osdn#44838
- Options dialogs remember their geometry osdn#44391
- Sidebar fonts refreshed on the session (not requiring client restart) they are changed in the options osdn#44907
- sdl2
- Change to fullscreen option now takes effect immediately, not requiring client restart osdn#48198
Tools[]
Modpack Installer[]
- Information about installed modpacks is now kept in a sqlite database GNAPATCH#7956
- Having "/" in the end of baseURL is no longer an error. It still doesn't do anything, but is tolerated osdn#44309
Ruleup[]
- Unused action enablers can be dropped osdn#41614
Ruledit[]
- Effects editing added HRM#658566
- Multipliers editing added HRM#735247
- Improvements to ruledit's suggestions to ruleset syntax improvements
- Suggestions to remove action enablers that would never be enabled osdn#41616
- Suggestions to remove duplicate requirements osdn#41633
- Detection of contradicting requirements in a requirement vector osdn#42100
- Stub ruleset is now part of main freeciv distribution osdn#43618
- Added Achievements tab osdn#48134
- Sound tags editing added osdn#48750
- Building flags editing added RM#156
Manual Generator[]
- Output format (html or wiki) can now be selected runtime, by commandline options HRM#657117
- Less "false positive" actions get listed as possible for terrain when they actually are available under no circumstances osdn#42106
Tilesets, Art, etc[]
- Extra animal unit sprites added to Amplio2 and to tilesets inheriting its units HRM#721407
- Extra unit sprites added to Cimpletoon and to tilesets inheriting its units osdn#44853
- Alternative Spy added to Amplio2 extra sprites osdn#48282
- Extra unit sprite for Feluca added to Amplio2 and to tilesets inheriting its units osdn#48643
- Savannah terrain sprites added to Hexemplio and to tilesets inheriting its terrains osdn#48644
Help / Documentation[]
- Documentation about the source code generated with Doxygen can be found from https://files.freeciv.org/nightly/weekly/ HRM#699770
Translations[]
- Updated translations: Esperanto, Finnish, French, Polish, Russian, Simplified Chinese
- Translations on Windows Installers enabled RM#6
Build/portability[]
- New Meson based build system introduced, to live in parallel with the existing autotools system for now. Autotools is still the official one in freeciv-3.1 HRM#779742
- With meson, sdl2-client can be built using SDL2_gfx files supplied with freeciv, without SDL2_gfx in the system osdn#46320
- Windows installer types available for freeciv-3.1
- At least Windows 8.1 needed for any freeciv-3.1 installer osdn#44286
- win-10 installers, requiring at least Windows 10 osdn#44789
- Windows sdl2-client now comes with gtk4 modpack installer osdn#43193
- Msys2 environment updated to snapshot from 230220 (20th of Feb 2023) osdn#46673
- Initial support for meson + crosser based Windows build. No installers come out from this, one have to get the build artifacts to the target by some other means. HRM#853475
- Minimum Qt5 requirement, for Qt5 using components, is now 5.11 HRM#849444
- It's possible to make an emscripten build of server and sdl2-client HRM#869747
- C++11 mode selected for the C++ compiler by default, as it's requirement even for the minimum Qt version we now support HRM#880321
- Project file can define the default network port that the server will listen osdn#42030
- Appdata files renamed as metainfo files osdn#43688
- Support scripts added for building appbundle for macOS, using homebrew osdn#44549
- For native builds, default is not to use improved tolua version coming with freeciv, instead of system one osdn#46199
- Crosser updated to version 2.8 RM#233
- Ruledit flatpak added osdn#47634
- Modpack .desktop and .metainfo.xml files renamed to follow org.freeciv.<gui>.mp pattern. osdn#48729
- Shell scripts use posix shebang, instead of assuming presence of /bin/bash RM#44
See doc/README.packaging for more information.
See ChangeLog in doc/README.AI_modules for list of changes in the AI module API.
What's changed since 3.1.0-RC1[]
For those who've been trying the betas, these are the changes since the release candidate, 3.0.0-RC1:
- Updated translations: Russian
Known issues[]
Here are some of the notable outstanding issues that we already know exist as of 3.1.0-beta2:
- The Gtk3 clients' zoom function still has some glitches. HRM#696027
- The Gtk3 clients currently don't have animation for moving the map view. HRM#735217
- The SDL2 client has no UI for manipulating policies. HRM#657404
See NEWS for older lists of changes.