Campaigns
- Eastern Invasion
- S04c: achievement now only triggers when escaping with all knights alive
- S11/S99: flying units can no longer enter prison cells via the river
- S12: fixed Dra-Nak (if present) having incorrect traits and portraits
- S17b: AI is now more forced to recruit only higher-level units when gold reserves get too high
- S99: prisoners now escape if their jailers are killed
- Under the Burnings Suns
- S04: added sprite for the Cold Dagger item (PR #9189)
Editor
- Added Show Tool Information toggle option in the menus and toolbar to allow hiding the informational tooltip on the edge of the screen that shows the current editor tool's usage and palette information
Translations
- Updated translations: Arabic, Bengali, British English, Chinese (Simplified), Czech, Finnish, French, German, Hungarian, Italian, Japanese, Turkish, Ukrainian
User interface
- Help button in the leaderchoosing window works on all languages (issue #9102)
WML Engine
- Fix crash when weapon specials' filters lead to infinite recursion (issue #8940)
Miscellaneous and Bug Fixes
- Search filter should now be case-insensitive for more than just ASCII characters (#9328)
Campaigns
- Eastern Invasion: "Drowned Plains" drastically shortened in length. Objective now involves gathering gold, not killing enemy leaders.
Editor
- Fixed a crash in some cases after setting which direction a unit is facing.
Lua API
- Added new function gui.switch_theme() to allow switching to another gui2 theme from inside a scenario.
Terrain
- Improved handling of bluffs/gulch transitions with mountains and frozen terrain
- Bluffs/Gulches less intrusive in mini-map
Translations
- Updated translations: Bengali, British English, Chinese (Simplified), Czech, Finnish, Italian, Japanese, Turkish
Units
- Walking Corpse: arcane vulnerability reduced from 40% to 20%.
- Soulless: arcane vulnerability reduced from 40% to 20%.
- Skeletal Dragon stats were changed:
- hitpoints from 171 to 98
- cost from 288 to 160
- fire resistance from -20% to 20%
- jaw attack from 17x4 to 15x3
- claw attack from 24x3 to 27x2
User interface
- GUI2 themes can be loaded from add-ons. Requires a `gui-theme.cfg` file in add-on root with a `[gui]` tag that acts as the entry point for the theme.
- Hovering over units and selecting units now highlights reachable hexes instead of obscuring unreachable ones.
- Option key is now identified as such instead of Alt in the Hotkeys preferences section on macOS builds
- Search filter should now be case-insensitive for more than just ASCII characters (#9328)
- Added attack and defend animations for the Orcish Warrior, standing and attack animations for the Goblin Pillager, and an alternate attack animation for the Orcish Warlord.
- Fixed the displayed team name not always matching the actual teams that players are on.
WML Engine
- Removed properties `unit.side` and `terrain.owner`. Use `unit.side_number` and `terrain.owner_side` instead.
- rechange [experimental_filter_ability/active] and [experimental_filter_specials] to [filter_ability/active] and [filter_specials] and make "experimental_" deprecated.
- Add alignment in [attack] to specify the alignment of an attack independent of the unit's alignment.
- GUI2 themes can now be provided by add-ons.
- When using `sub` in a weapon special to decrease the number of attacks a unit has, going below zero is now treated as still being 0.
Miscellaneous and Bug Fixes
- A variety of issues have been fixed in the rewritten in-game Help browser.
- Fixed the editor saving plain maps in a different folder than the game creation screen expects.
Lua API
- Added new function gui.switch_theme() to allow switching to another gui2 theme from inside a scenario.
- Updated to lua 5.4.7
Translations
- Updated translations: Arabic, Bengali, British English, Chinese (Simplified), Czech, Italian, Japanese, Turkish, Ukrainian
Units
- Walking Corpse: arcane vulnerability reduced from 40% to 20%.
- Soulless: arcane vulnerability reduced from 40% to 20%.
User interface
- GUI2 themes can be loaded from add-ons. Requires a `gui-theme.cfg` file in add-on root with a `[gui]` tag that acts as the entry point for the theme.
- Option key is now identified as such instead of Alt in the Hotkeys preferences section on macOS builds
- Search filter should now be case-insensitive for more than just ASCII characters (#9328)
- Whirlpools no longer get submerged in water.
- The in-game chat now properly redraws over water and other animated terrain.
- Fixed items not appearing properly when submerged.
WML Engine
- Removed properties `unit.side` and `terrain.owner` from WFL. Use `unit.side_number` and `terrain.owner_side` instead.
- Fixed events with negative priority not being stored in save files.
- Events can now be added to abilities and weapon specials.
Campaigns
- Under the Burnings Suns
- S04: added sprite for the Cold Dagger item (PR #9189)
Editor
- Added Show Tool Information toggle option in the menus and toolbar to allow hiding the informational tooltip on the edge of the screen that shows the current editor tool's usage and palette information
Translations
- Updated translations: Bengali, British English, Chinese (Simplified), Czech, French
Units
- New cat units: Jumpcat, Forest Lion, and zombie/soulless cat
User interface
- Added a few more images that can be shown on the new titlescreen
WML Engine
- Fix crash when weapon specials' filters lead to infinite recursion (issue #8940)
- Updated xBRZ implementation to v1.8
Translations
- Updated translations: Chinese (Simplified), French, Ukrainian
WML Engine
- Fixed out of sync errors due to bad undo/redo handling.
Miscellaneous and Bug Fixes
- Server-side fix for the "Something is wrong with the addon version check database supporting the multiplayer lobby." error (issue #8805)
- Potential fix for log files not being written on Windows.
Campaigns
- Eastern Invasion
- fixed Gweddry having the wrong HP values
- fixed the king being neutral instead of lawful
- fixed "Dark Shape" from being neutral instead of chaotic
- the king can no longer wield the plague staff
- the king and generals can no longer recall undead veterans
- S04c: achievement now only triggers when escaping with all knights alive
- S11/S99: flying units can no longer enter prison cells via the river
- S12: fixed Dra-Nak (if present) having incorrect traits and portraits
- S17b: AI is now more forced to recruit only higher-level units when gold reserves get too high
- S99: prisoners now escape if their jailers are killed
Editor
- Rename Load Map to Load Map/Scenario (since it can load both), Edit Scenario to Edit Scenario Settings, Save Map to just Save.
- Rearrange menu order
- Add icon for the preferences menu item (used the preexisting settings.png icon)
- Open folder correctly at Add-on's scenario directory instead of editor/scenarios. (#8910)
- Show Save Scenario As only for Scenarios
- Use the settings.png icon for Preferences menu item
- Add functionality to "Loyal" checkbox (Unit tool -> Place unit -> Right click menu) (#8445)
- Show warning when maps are saved in scenarios folder or vice versa (#8911)
- Unit List moved to Units menu from File menu to reduce some pressure from the latter.
- Status Table menu item disabled since it does nothing. (Should be reenabled once the functionality has been added.)
- Improve reload functionality in Editor (F5). Reload happens directly from memory and no temp files are needed. Also, the undo/redo stacks will be preserved. (#9024)
- Time Schedule Editor
- Browse buttons now set wesnoth style paths instead of just pasting the absolute path returned by the file dialog
- Change text boxes from inactive to uneditable.
- Code generation improvements
- Add copyright notice to tod_new_schedule
- Confirmation messages
- Preview buttons for image and sound files and new icons for the preview button (2 sets : preview image and preview sound)
- Unit Type Editor
- Confirmation messages
- New icons for the preview button (2 sets : preview image and preview sound)
- Add-on menu
- Two new menu entries for (1) opening the Add-on selection dialog, (2) opening the folder corresponding to the Add-on. The open add-on folder option shows a GUI2 file dialog at the add-on's folder which can be used to open any file. If it is a loadable map/scenario it will be opened in the editor, otherwise the OS's default application for that file will be opened.
- File Dialog
- Redesigned with new icons
- New Open External button that opens selected file/folder in the platform's default application (independently of what pressing Open would do). This could be used to quickly open a folder or preview the file before actually selecting it.
- Extension checking and filename validation. (See #8911)
Translations
- Updated translations: Bengali, British English, Chinese (Simplified), Czech, Finnish, French, German, Ukrainian
User interface
- When a player types something into the Load Game filter box and then changes to a different version, apply the filter immediately instead of showing the full list of files.
- An updated design for the titlescreen has been added. This can be toggled in the Display preferences. (#8953)
WML Engine
- max_value and min_value can now be used with most abilities
- Added unit hits and unit misses events
Miscellaneous and Bug Fixes
- Server-side fix for the "Something is wrong with the addon version check database supporting the multiplayer lobby." error (issue #8805)
- Fixed the Load Game dialog forgetting the filename filter when changing directory
- Removed the config-dir, userconfig-dir, config-path, and userconfig-path commandline options
- Moved the editor, WML persist, saves, lua command history, and most of the preferences to a separate subfolder for all data that should be synced between multiple computers
- Fixed Plan Unit Advance modification causing incorrect XP colour in the Advance Unit dialogue (#9047)
- Fixed Plan Unit Advance modification preventing undo of the first action of each turn (#9047)
Translations
- Updated translations: Bengali, British English, Chinese (Simplified), Czech, French, Japanese, Ukrainian
Units
- Added a melee animation for the Dragoon and Cavalier.
- Added a wounded bob animation for the Cavalier.
WML Engine
- Modified 'apply_to' in [experimental_filter_ability(_active)] or [overwrite][experimental_filter_specials] to do an inclusion check for a comma-separated list of damage types in [resistance] abilities.
- Removed the deprecated 'controller=number' from [side]
Miscellaneous and Bug Fixes
- Fixed erroneous sidebar text caused by [damage_type] assuming that an alternate_type is always present.
Campaigns
- Eastern Invasion
- Prevent Dacyn from picking up a different staff (issue #8885)
- Reduce Barrow/Pyre Wight vulnerability to arcane
- Many minor bugfixes
- Heir to the Throne
- Li'sar is no longer renameable.
- Sceptre of Fire
- S7: Fewer and slower enemies, to balance the buff to the Elvish Outrider unit type
- Tutorial
- Better timing for some of the hints
- World Conquest
- Fix World Conquest's Help dialog showing double scrollbars due to the left tree having it's vertical scrollbar disabled. Changed both vertical and horizontal scrollbar modes to automatic. (issue #8576)
Editor
- Allow loading .mask files
Packaging
- Fixed building with Boost 1.85.
Translations
- Updated translations: Arabic, Bengali, Bulgarian, Chinese (Simplified), Czech, Finnish, French, German, Italian, Japanese, Norwegian, Russian, Slovak, Ukrainian
User interface
- Added a button to the build info dialog to rerun the 1.16 to 1.18 migration tool (issue #7936)
- Overhauled the Language selection dialog to make it more informative, including displaying translation progress and making it easier to select highly-incomplete translations.
- Made the Changelog option in the macOS app menu link to the changelog for the particular Wesnoth app version rather than the Git master branch changelog.
- Add a Community button to the title screen to link to the forums, discord, etc.
Miscellaneous and Bug Fixes
- Fixed replays marking achievements as complete (issue #8858)
- Fixed build with Boost 1.85
- Fixed a crash in the recall dialog when turning off all sorting options (issue #8878)
- Fixed clicking on a trait in the sidebar sometimes opening the wrong traits help page
- Removed wesnothds unused threads commandline options
- Trying to load an image filename ending ".jpg" will now automatically try ".webp" if the ".jpg" isnt found.
- Fix: releasing a mouse button at the same time as a dialog pops up sometimes dismissed the dialog immediately (issue #8644)
- Fixed macOS saves going in the wrong directory.
- Fixed unit portraits being too large in the in-game help when a pixel scale multiplier was set but disabled.
- Fixed the unit idle animation preference not being saved correctly.
- Fixed multiplayer games not entering linger mode after the scenario ends due to a turn limit.
- Fixed achievements being marked completed when only watching a replay.
- Fixed Wesnoth crashing when reloading a multiplayer game in debug mode.
Add-ons client
- Show the server ID in the Add-ons Manager
- The add-ons server identifier (e.g. 1.18) is now displayed on the bottom left after the server address. If debug mode is enabled the server software version is also shown.
Campaigns
- Descent into Darkness
- S3: player now no longer gains any exp upon killing rats and crawlers, buffed puzzle exp to compensate
- Eastern Invasion
- Prevent Dacyn from picking up a different staff (issue #8885)
- Reduce Barrow/Pyre Wight vulnerability to arcane
- S14: indicate uncleared swamp hexes with "swamp reed" images
- Many minor bugfixes
- Liberty
- Custom unit and portrait for Lord Maddock
- Sceptre of Fire
- S7: fewer and slower enemies, to balance the buff to the Elvish Outrider unit type
- Tutorial
- Better timing for some of the hints
- Under the Burnings Suns
- S01: the luck involved in getting units from villages is now fairer
- Secrets of the Ancients
- S16: Keep Crelanu within his ring of protective holy waters (issue #8361)
- Winds of Fate
- Avoid a Lua error that only triggered on Windows in locales that use commas as the decimal separator
- Rebalanced enemies and enemy gold from S6 onwards
- S08: clarify the objectives
- World Conquest Fix World Conquest's Help dialog showing double scrollbars due to the left tree having it's vertical scrollbar disabled. Changed both vertical and horizontal scrollbar modes to automatic. (issue #8576)
Editor
- Allow loading .mask files
- New UI in the Scenario Editor that allows to create custom unit types, accessible by Unit menu > New Unit Type.
Multiplayer
- The default settings for the timer are now 240 seconds turn bonus, with no action bonus
- The full map is no longer revealed in linger mode by default, so it behaves similarly to SP mode for campaigns
- Refactor the code which determines when actions can be undone, and when actions are sent to the server
- In the Aethermaw map, Sulla's title has been changed to Aether Mage and prose slightly rewritten to include this change.
- Fixed some old paths to unit images being used in Aethermaw (issue #8432)
- Moved the Dunefolk into Default era. The "+Dunefolk" eras have been removed.
Lua API
- Overhaul of the API to use named tuples instead of `data[1]`, `data[2]`, etc
- Locations returned by the API are now named tuples, so their data can be accessed as `location.x` and `location.y`
- Objects with `x` and `y` data members can generally be passed to APIs that expect a location
Packaging
- Fixed build with Boost 1.85
- Increased the minimum required SDL version from 2.0.10 to 2.0.18 for non-macOS platforms (macOS already requires 2.0.22)
Terrain
- Oasis is now a mixed terrain, adding shallow water to the base terrain, and defaulting to Sand as the base terrain
- The help browser now considers the default base of mixed terrains when adding them to the help tree
Translations
- Updated translations: Arabic, Bengali, British English, Bulgarian, Chinese (Traditional), Czech, Dutch, Finnish, French, German, Italian, Japanese, Norwegian, Polish, Russian, Slovak, Spanish, Ukrainian
- Added new font "Lohit-Bengali.ttf" to support Bengali translation
Units
- Elvish Avenger - decreased ranged attack from 114 to 104, decreased cost from 66 to 60
- Elvish Sharpshooter - decreased ranged attack from 125 to 105, decreased cost from 62 to 55
- Elvish Shyde - decreased ranged slow attack from 83 to 73, decreased ranged magical attack from 143 to 103, decreased cost from 69 to 58
- Elvish Enchantress - decreased ranged slow attack from 74 to 64, decreased ranged magical attack from 134 to 114, decreased cost from 70 to 62, decreased XP requirement from 198 to 180
- Elvish Sylph - decreased ranged magical attack from 165 to 135, decreased cost from 161 to 135
- Added new Fire Wisp unit
- Added portraits for Skeletal Rider, Wyvern, TSGs Eyestalk, TRoWs vampire lady, and an alternative portrait for bears
- Elvish Enchantress - description for 'entangle' changed to 'ethereal web', icon changed.
- Elvish Sylph - description for 'gossamer' changed to 'ethereal web'.
- Mudcrawler and Giant Mudcrawler - increased swamp defense from 40% to 60%, swamp movement penalty reduced from 2 to 1, castle and village defense reduced from 60% to 50%
User interface
- Added a button to the build info dialog to rerun the 1.16 to 1.18 migration tool (issue #7936)
- Use a gold completion laurel for campaigns with only one difficulty setting
- Refined the layout of the Load Game dialog
- New texture-based minimap rendering
- Added a "Teleport Unit" option to the debug menu
- The campaign list in New Campaign dialog now supports filtering campaigns by whether they have been completed and at which difficulty.
- Redesigned story screen layout with new graphics
- Game version dialog redesigned to act as an general purpose About dialog.
- Community dialog moved to About dialog as a new tab. Community button removed from title screen.
- Credits button moved from Title Screen into About dialog.
- Success indication mechanism on buttons. Currently used only for copy buttons.
- Slight reorganization of title screen buttons.
- Add a Community button to the title screen to link to the forums, discord, etc.
- Overhauled the Language selection dialog to make it more informative, including displaying translation progress and making it easier to select highly-incomplete translations.
- Made the Changelog option in the macOS app menu link to the changelog for the particular Wesnoth app version rather than the Git master branch changelog.
- Added unit type level as a filter criterion in the Recruit Unit dialog.
- Added unit race and alignment as additional filter criteria in the Recall Unit dialog.
- Fixed timing issue with the outro screen's text fading effect that made it so fast as to be unnoticeable on many hardware configurations.
WML Engine
- Fixed the Ambush ability not working in Bluff/Glutch Forest terrain
- Multiple fixes to replay handling
- Image Path Functions now accept percentages for scaling sizes
- The AMLAs that a unit has are now accessible via WFL
- new combobox and tab_container widgets
- editability in text box via the editable key
- add [filter_wml] to [experimental_filter_ability(_active)] or [overwrite][experimental_filter_specials]
- Added support for `value="default"` to ability filters to match abilities using their default `value` (by explicit setting or absence)
Miscellaneous and Bug Fixes
- Remove special handling of config directory on Linux, use the userdata folder as on Windows and MacOS (#8848)
- Added new `color_range` palettes `yellow` and `pink`
- Added environment variable `WESNOTH_NO_LOG_FILE`, equivalent to the `--no-log-to-file` command line flag
- Fixed attack calculations when resistances counter `[damage_type]alternative_type=`
- Fixed replays marking achievements as complete (issue #8858)
- Fixed a crash in the recall dialog when turning off all sorting options (issue #8878)
- Fixed clicking on a trait in the sidebar sometimes opening the wrong traits help page
- Removed wesnothds unused threads command line options
- Fixed a bug causing excessive pixellation of scaled images
- General cleanup of unnecessary C++ header file includes
- Trying to load an image filename ending ".jpg" will now automatically try ".webp" if the ".jpg" isnt found.
- Fix: releasing a mouse button at the same time as a dialog pops up sometimes dismissed the dialog immediately (issue #8644)
After two and a half years of development and thousands of commits made by dozens of contributors, the Battle for Wesnoth development team is proud to announce the availability of version 1.18.0 on Windows, macOS, and Linux! This release features many new additions as well as refinements to existing content including a new Drake campaign, a full remake of our oldest Loyalist campaign, greatly improved graphical performance, major balance changes for multiplayer, achievements, many enhancements to the editor, and so much more! A full list of changes and new features added since version 1.16 can be found in the release notes for this series.
Contributors
Wesnoth 1.18.0 was made possible by the contributions of many, many people all over the world. In no particular order, we would like to thank: alberic89, Alexander Lacson, Amir Hassan, ancestral, Andrei BENCSIK, Arnav Vijaywargiya, Astrid Halberkamp, AugustVesterbacka, Bruno Macabeus, Celtic Minstrel, Charles Dang, Cody Burchell, Dalas121, Daniel Bruno, Daniel Diefenthaler, Daniel Foerster, Daniel Santos, demario, Descacharrado, Discontinuum, on Trn Cng Danh, doofus-01, Dou1622, Elvish_Hunter, Eric Gallager, Eugene, Evan Miller, Ferk, fujimo-t, gfgtdf, Goncalo Gomes, Gothyoba, Grzegorz Halat, Gunter Labes, Gwyn Ciesla, Hejnewar, inferno8, Iris Morelle, irregularBismuth, Ivo Julca, Jason Stephenson, Jonathan-Kelly, kabachuha, Kingofd, Larkin Nickle, larry_the_cow, lomekragow, loonycyborg, Luis Miguel Iglesias Snchez, Luther, macabeus, Martin Hrub (hrubymar10), Martin Liska, mattsc, max-torch, MechanicalDragon963, Michal Fusat, Michal ejdl, Miguel Magno, MJ, nemaara, newfrenchy83, Nils Kneuper, OrekOrek, Pentarctagon, P. J. McDermott, PointMeAtTheDawn, Rafael Silva, Ryan Schmidt, Sergey Popov, Severin Glckner, Severin Schoepke, shijie.chen, Slayer95, smokespren, spixi, Steve Cotton, Subhraman Sarkar, SyedSaifuddin045, Tahsin Jahin Khalid, TheFlamelet, TheShadowOfHassen, Till Noffke, tofilwiktor, Tommy, Toom, Toranks, User, VALiUM, V N, walodar, Wedge009, zBugH1, and our many current and past translators, artists, musicians, and anyone we might have missed.
Campaigns
- Eastern Invasion
- Many minor bugfixes
- Heir to the Throne
- Fix S17 to ensure the starting castle always has 6 hexes for recruiting (PR #8314)
- Clarify S11's objectives by editing the map (no string changes) (PR #8326)
- Add decorations and map embellishments to S16, S19a and S22 (PR #8243)
- Use swamp terrain instead of sand for S19b (PR #8243)
- Under the Burning Suns
- Improve continuity between events that can be triggered in various orders.
- Adjust Fighter unit line for easier early leveling and more late game staying power.
- World Conquest
- Fix the Bezoar artifact (issue #6513)
Multiplayer
- Assume that all players need a copy of an add-on, by defaulting `require_modification`/`require_campaign` to `yes` (PR #8135)
Lua API
- Added documentation for linting and IDE support
Packaging
- Add CMake and SCons options to use an already installed copy of Lua 5.4 (PR #8234)
- The system copy of Lua must be compiled as C++ rather than C, as Wesnoth uses C++ exceptions.
- Windows requires a compile-time change to Lua, so must use the in-tree Lua submodule.
Translations
- New translation: Bengali
- Updated translations: Arabic, British English, Czech, Finnish, French
Units
- War Harbinger: +3 HP (29 -> 32), XP to 100, cost +2g (41 -> 43), removed forest and village dodge modifiers
- Dark Omen: removed forest and village dodge modifiers
- Raven: removed forest and village dodge modifiers
User interface
- New multiline textbox and numerical spinner widgets (PR #8199)
WML Engine
- Added a composite hero/leader ellipse, in case an author forgets to `UNMAKE_HERO` when converting to a leader (PR #8375)
- `[event]name=unit_placed` is now non-undoable by default (issue #7780)
- `[scroll]` now includes a delay, this was needed for visual effects such as the `QUAKE` macro
Miscellaneous and Bug Fixes
- Fix some logs not being included in the logfile (issue #8108)
- Multiple fixes to handling of Lua errors, some of which could cause a crash (PR #8234)
- When WML specifies a unit or unit types gender, automatically include that in the .po files as a translation hint
- Make sure `transform_unit` doesn't heal the unit when removing objects (PR #8147)
- Fixed bugs in the rushers recruit AI (issue #8297)
- Savefiles now include the ID of the core in use
Campaigns
- Eastern Invasion
- Fix S04bs time limit, which extends by 10 turns if a bonus objective is completed.
- Fix macros in translatable strings, because they prevent translation. (issue #8225)
- Winds of Fate
- Made the epilogue more vague about events on the Green Isle
- Removed part of epilogue suggesting a Drake-led war around 120YW
Translations
- Updated translations: Arabic, British English, Czech, Finnish, French, German, Italian, Slovak
Units
- New fish and bug zombie variations
User interface
- Added hotkeys for various menu items and ThemeWML buttons in Map Editor
- Added shortcut Ctrl+G for 'I'm Ready' button in mp_staging dialog (Addresses issue #8250)
- Fix the left pane of the help browsers layout for right-to-left languages (Arabic and Hebrew) (issue #8205)
Miscellaneous and Bug Fixes
- wmllint now warns about `[kill]` tags containing `[filter]` tags
- Fix a regression from 1.13.11 that inverted horizontal scrolling with SDL versions 2.0.18+ on X11 and versions 2.0.20+ on Wayland (issues #3362 and #7404, PR #8137)
- Run wesnothd server as `_wesnoth:_wesnoth` instead of `nobody:users`, improving safety and fixing a warning message in systemd 246+
Translations
- Updated translations: Arabic, British English, Bulgarian, Chinese (Simplified), Czech, French, Japanese, Polish, Slovak, Welsh
Miscellaneous and Bug Fixes
- Fix a crash in the `:inspect` window when pagination is used (issue #7851).
- Fix "Something is wrong with the addon version check database supporting the multiplayer lobby". Note that It also required the host of the game to use wesnoth 1.16.11
Campaigns
- Winds of Fate
- Fix macro argument in translatable string
- Eastern Invasion
- Change S04bs `scenario_id` to `en_US` spelling (issue #7994)
- S04b start-of-scenario saves since 1.17.21 will be broken
- S03 mid-scenario saves since 1.17.21 will show a warning, and players will only be able to go west
- Saves from earlier versions are already broken by the campaign rewrite
- Fix macro argument in translatable string
Editor
- Time Schedule Editor now saves custom time schedules to `utils/schedule.cfg` under the Add-on directory. (Cache needs to be manually reloaded with `F5` after exiting Map Editor.)
- Changing the color sliders and pressing the preview button shows a preview of the tint on the map.
- New dialog for entering custom schedule ID and name. The user is required to enter a non-empty schedule id and name. ID will be autogenerated if the user doesn't specify it or already exists.
- Textbox to enter Add-on ID after selecting `New Scenario > New Add-on`.
Multiplayer
- Fix Add-on version check error #4055
Lua API
- units.remove_modifications can now remove multiple types of modifications.
Translations
- Updated translations: British English, Bulgarian, Finnish, French, German, Polish, Slovak
Miscellaneous and Bug Fixes
- Fix various assertion failures on invalid input
- Fix end credits not showing when a scenario has no [side]s #8090
- The command line `--preprocess` utility now accepts any filename, not just those ending .cfg.
Campaigns
- Under the Burning Suns
- All sand terrian now correctly applies the dehydrated effect
Translations
- Updated translations: British English, Czech, French, Italian, Polish, Slovak, Welsh
Units
- Drakes:
- Saurian Seer - modify the unit to fix reductions in power level between level 2 and level 3.
User interface
- If wesnoth is installed with most campaigns missing, an error message is shown in the campaign selection dialog
- The inspect dialog again is able to correctly paginate large amounts of text
- The credits now actually show up instead of crashing the game
- Significantly improve game history query performance, preventing the query from timing out
- The help browser, when looking at a unit type which uses the same image for male and female units, now only shows one image instead of showing a duplicate.
WML Engine
- [filter_ability], [filter_ability_active], and [filter_specials] are renamed to [experimental_filter_ability], [experimental_filter_ability_active], and [experimental_filter_specials]
- Add a [damage_type]'replacement_type' and 'alternative_type' attribute weapon special to change the type of attack under specific conditions (terrain, time of day, leadership etc...)
Miscellaneous and Bug Fixes
- Added basic support for the `ttkthemes` Python library to GUI.pyw on Linux
- Fixed the screen not redrawing on Windows after unlocking the computer
- Fixed occasional bad rendering for blurred/translucent areas
- Significantly reduced CPU usage when a dialog is open
- Avoid an assert in `replay::add_start_if_not_there_yet` with corrupt files (issue #7154)
Feature Freeze
With this release the feature freeze has (mostly) begun, meaning that if you've authored an add-on for 1.16 then this is the point at which you can start testing to see what issues there might be in preparation for 1.18.0 releasing in a few months. There may also have been bugs introduced with all the changes that have been made, so please report any that you find! We do our best, but we do nevertheless rely on people using these APIs and reporting problems they run into as well.
Campaigns
- Under the Burning Suns
- More AMLAs for Kaleh and Nym.
- Balance changes.
Multiplayer server
- Record and replay chat messages when joining a game that has not started yet
Lua API
- New experimental Lua undo API
- New Lua mouse click callback
Terrain
- New embellishment for adding windows to impassible walls.
Translations
- Updated translations: Welsh
- Updated translations: British English, Chinese (Simplified), Czech, French, Slovak
Units
- Update graphics and stats of Roc
- New monster unit line - Ravens
- New Jumping Spider monster.
- Drakes:
- Saurian Oracle xp changed from 66 to 74
- Saurian Soothsayer xp changed from 100 to 66
User interface
- Village ownership is shown with flag and side number in terrain info (issue #4334)
WML API
- New ability attributes `halo_image=` and `halo_image_self=`, to illustrate the effects of the illumination ability, HttT's initiative, etc.
- New ability attributes `overlay_image=` and `overlay_image_self=`.
- New ability tag and attribute `[overwrite]priority=`.
- Two new tags, `[filter_ability]` and `[filter_ability_active]`, which have a temporary exception from the API freeze.
WML Engine
- The implementation of `[allow_undo]` has changed, the behavior should be the same.
Miscellaneous and Bug Fixes
- Asset copyright tracking is now handled in a .csv file, and sanity checked during CI builds.
Campaigns
- Eastern Invasion
- Revise entire campaign (Dalas version)
- Descent into Darkness
- Buff soul rend
- Liberty
- Make Harper a girl and revise some dialogue
- Legend of Wesmere
- Replace lingering instances of old style gold carry over for S9, S11 and S14 (issue #7862)
Translations
- Updated translations: Arabic, British English, Czech, German, French
Units
- Updates to Troll sprites and animations (#7844)
- Giant Ant Queen, Fire Ant Queen, Ant Eggs, and Ant Zombies
- Rebels:
- Elvish Enchanterss xp changed from 180 to 198.
- Elvish Sylph cost changed from 148 to 161.
- Loyalists:
- Young Ogre cost changed from 15 to 13, xp changed from 32 to 34, mountain defense changed from 60% to 50%, arcane resistance changed from 20% to 10%.
- Ogre cost changed from 30 to 27, mountain defense changed from 60% to 50%, arcane resistance changed from 20% to 10%.
- Miscellaneous:
- Elder Falcon - cost changed from 18 to 20.
- Giant Ant xp changed from 26 to 16.
- Soldier ant cost changed from 16 to 12, hp changed from 35 to 36.
- Fire Ant - xp changed from 50 to 22.
- Firebomb Ant - hp changed from 38 to 45, cost changed from 14 to 19.
- Yeti - cost changed from 80 to 151.
- Piglet xp changed from 26 to 20.
- Woodland Boar cost changed from 15 to 16, hp changed from 35 to 34.
- Fire guardian xp changed from 29 to 24, hp changed from 23 to 25.
- Fire Wraith gold cost changed from 22 to 17.
- Bay Horse and Dark Horse xp changed from 44 to 24.
- Mermaid Initiate cost changed from 19 to 16, xp changed from 50 to 42.
- Mermaind Priestess cost changed from 38 to 31, xp changed from 132 to 61.
- Mermaid Diviner cost changed from 57 to 49.
- Mermaid Enchanterss cost changed from 33 to 32, xp changed from 90 to 46.
- Mermaid Siren cost changed from 52 to 42.
- Merman Brawler - cost changed from 19 to 17.
- Naga Guardian xp changed from 35 to 36.
- Naga Warden xp changed from 70 to 54.
- Troll Hero cost changed from 30 to 42, xp changed from 52 to 90.
- Great Troll cost changed from 48 to 78.
- Troll Shaman cost changed from 32 to 35.
- Dwarvish Scout xp changed from 30 to 33.
- Dwarvish Pathfinder cost changed from 30 to 24, xp changed from 60 to 65.
- Dwarvish Explorer cost changed from 45 to 51.
- Dwarvish Runesmith cost changed from 30 to 27, xp changed from 86 to 71.
- Dwarvish Runemaster cost changed from 50 to 55.
- Dwarvish Arcanister cost changed form 80 to 98.
- Dwarvish Miner cost changed from 19 to 5.
- Orcish Leader cost changed from 20 to 21, xp changed from 60 to 54.
- Orcish Ruler cost changed from 35 to 45, xp changed from 120 to 102.
- Orcish Sovereign cost changed from 50 to 80.
- Skeleton Rider xp changed from 44 to 33.
- Death Squire xp changed from 144 to 91.
- Death Knight cost changed from 45 to 80.
- Royal Warrior - cost changed from 40 to 47.
- Elvish Lord cost changed from 36 to 42, xp changed from 120 to 97.
- Elvish Highlord- cost changed from 56 to 77.
- Nibbler cost changed from 10 to 15, xp changed from 32 to 26.
- Caribe cost changed from 16 to 25, xp changed from 40 to 43.
- Hunter Caribe cost changed from 25 to 40.
- Dragonfly Naiad cost changed from 8 to 11, xp changed from 23 to 16.
- Dragonfly cost changed from 13 to 16, xp changed from 23 to 25.
- Grand Dragonfly hp changed from 34 to 39, cost changed from 22 to 30.
- Ruffian - cost changed from 6 to 7.
- Thug - xp changed from 42 to 32.
- Bandit - cost changed from 23 to 22, xp changed from 70 to 61.
- Peasant and Woodsman - xp changed from 23 to 19.
- Elder Mage - cost changed from 65 to 90.
Campaigns
- A Tale of Two Brothers
- Remove the magic communication amulets from the story.
- Under the Burning Suns
- S3: Ensure all of Garaks attacks are changed to fire type (#7774).
Editor
- Added the ability to create a basic add-on - the _server.pbl, folder structure, and saving scenario files in a format which works with add-ons.
Translations
- Updated translations: British English, Czech, Italian, Japanese
Units
- Rebels:
- Elvish Outrider - movement changed from 10 to 11
- Drakes:
- Saurian Soothsayer - movement changed from 6 to 7
- Movement type changes:
- Smallfoot, armoredfoot, elusivefoot, mounted, fly, smallfly, lightfly, deepsea, mountainfoot, gurefoot, rodentfoot, lizard, dunefoot, duneelusivefoot, dunearmoredfoot, dunehorse, dunearmoredhorse - arcane resistance changed from 20% to 10%.
- Treefolk - arcane resistance changed from -30% to -20%.
- Undeadfoot - arcane resistance changed from -50% to -20%.
- Undeadfly - arcane resistance changed from -40% to -20%.
- Drakefly, drakeglide, drakeglide2, drakefoot - arcane resistance changed from -30% to -10%.
- Loyalists:
- Paladin - arcane resistance changed from 60% to 30%.
- White mage - arcane resistance changed from 40% to 30%.
- Mage of Light - arcane resistance changed from 60% to 50%.
- Undead:
- Lich - arcane resistance changed from -40% to -20%.
WML Engine
- Add support for filters to match negative values
Miscellaneous and Bug Fixes
- Fix a crash in the `:inspect` window when pagination is used (issue #7851).
Campaigns
- Heir to the Throne
- S03: Rewrite intro text, including a hint about training troops (PR #7291)
Editor
- Scrolling the map north or south can move the text that overlays the map, so it doesn't always obscure the southmost hexes of the map. (issue #6422}
Multiplayer
- Allied units orbs no longer look like the players own units orbs (issue #7108).
- By default, they are now two-color during the allys turn.
- Added an advanced setting to always show them as single-color (the ally color).
- "Back to Turn" menu no longer crashes the game when used After the game has ended. #4236
- World Conquest: Fixed rare lua error when a unit is killed.
- World Conquest: Fixed Bezoar Item.
- World Conquest: Fixed some items losing their effects in later scenarios.
- World Conquest: Fixed units losing hp wheh picking up an artifact
- World Conquest: Fixed "Promote to commander"
Translations
- Updated translations: Arabic, Czech, French, Italian, Spanish, Portuguese (Brazil)
User interface
- Fix file dialogs (e.g. Save As dialog in the Map Editor) not listing /run/media/USER as a possible file location on modern Linux distributions.
- Update the preferences windows Display resolution list if the game window is resized.
- Improved the layout of the orb colors dialog, and added tooltips.
Miscellaneous and Bug Fixes
- Fixed Possible Crash when using planning mode #3768
- Fixed Possible OOS when using planning mode #7465
- Fixed game hanging when an enemy attacks a unit with planned moves #5302
- Fixed custom effects implemented via wesnoth.effects losing their effects in later scenarios.
- Fix Crash undo+redo error after reloading #7253
- Fix Crash when loading old replays #7253
- Fix Crash when a unit has bad animations replays #5032
- Postponed the removal of the `SPECIAL_NOTES` macro, which means there will be fewer log messages.
Campaigns
- Descent into Darkness
- S3: Resolved Darken Volk speaking from the darkness at the end of the scenario (#7758).
- Liberty
- S4: Resolved nameless enemies gaining names at day-break (#7748).
- S5: Make the loss of Hans a lose-condition (#7750).
Translations
- Updated translations: British English, Czech, Finnish, French, Portuguese (Brazil)
Units
- Rebels:
- Elvish Fighter - xp changed from 40 to 37, and new updated sprite and animations
- Merman Hunter - xp changed from 35 to 33.
- Elvish Scout - xp changed from 32 to 42.
- Elvish Hero - xp changed from 90 to 80.
- Elvish Captain - xp changed from 90 to 85.
- Elvish Marksman - cost changed from 31 to 34.
- Elvish Ranger - xp changed from 90 to 85.
- Elvish Rider - ranged damage changed from 9 to 11, hp changed from 46 to 49, cost changed from 28 to 35, xp changed from 53 to 75.
- Elvish Druid - cost changed from 27 to 25, xp changed from 80 to 85.
- Elvish Sorceress - cost changed from 32 to 34, xp changed from 100 to 90.
- Elder Wose - cost changed from 27 to 28, xp changed from 100 to 80.
- Merman Netcaster - cost changed from 27 to 26, xp changed from 85 to 54.
- Merman Spearman - cost changed from 27 to 22, xp changed from 85 to 54.
- Champion - melee damage changed from 9 to 8. added 10 melee accuracy, hp changed from 70 to 72, cost changed from 48 to 61.
- Elvish Marshal - hp changed from 62 to 68, cost changed from 54 to 67.
- Elvish Sharpshooter - ranged damage changed from 10 to 12. cost changed from 51 to 62.
- Elvish Avenger - ranged damage changed from 10 to 11, hp changed from 55 to 59, cost changed from 53 to 66.
- Elvish Outrider - ranged damage changed from 8 to 11, melee damage changed from 7 to 8, hp changed from 57 to 60, cost changed from 43 to 58.
- Elvish Shyde - hp changed from 46 to 51, melee damage changed from 6 to 7, ranged slow (entangle) damage changed from 6 to 8, ranged magical (thorns) damage changed from 8 to 14, cost changed from 52 to 69.
- Elvish Enchantress - cost changed from 55 to 70, ranged slow damage changed from 5 to 7, ranged magical damage changed from 9 to 13.
- Ancient Wose - cost changed from 48 to 50.
- Merman Entangler - cost changed from 46 to 42.
- Javelineer - cost changed from 48 to 55.
- Elvish Sylph - hp changed from 60 to 68, ranged slow damage changed from 6 to 7, ranged magical damage changed from 10 to 16, cost changed from 67 to 148.
- Undead:
- Skeleton - xp changed from 35 to 39.
- Ghoul - xp changed from 35 to 30.
- Blood Bat - cost changed from 22 to 23, xp changed from 70 to 37.
- Revenant - cost changed from 31 to 28, xp changed from 85 to 78.
- Dark Sorcerer - cost changed from 33 to 34, xp changed from 90 to 110.
- Shadow - cost changed from 38 to 44, xp changed from 100 to 77.
- Wraith - xp changed from 100 to 90.
- Necrophage - melee damage changed from 7 to 9, cost changed from 27 to 23, xp changed from 120 to 61.
- Bone Shooter - cost changed from 26 to 24, xp changed from 80 to 60.
- Dread Bat - cost changed from 34 to 32.
- Draug - cost changed from 47 to 70.
- Lich - cost changed from 50 to 90.
- Necromancer - ranged cold damage changed from 17 to 19, ranged arcane damage changed from 12 to 16, hp changed from 70 to 76, impact resistance changed from 0% to 10%, cost changed from 50 to 90.
- Nightgaunt - cost changed from 52 to 71.
- Specter - cost changed from 52 to 78.
- Ghast - melee damage changed from 10 to 12, cost changed from 43 to 50.
- Banebow - cost changed from 41 to 52.
- Ancient lich cost changed from 100 to 214.
- Drakes:
- Drake Fighter - xp changed from 42 to 41.
- Drake Clasher - xp changed from 43 to 41.
- Drake Glider - xp changed from 35 to 39.
- Drake Warrior - xp changed from 70 to 81, cost changed from 32 to 31.
- Drake Arbiter - hp changed from 62 to 63, xp changed from 105 to 81.
- Drake Thrasher - xp changed from 95 to 77.
- Drake Flare - xp changed from 80 to 86.
- Fire Drake - xp changed from 80 to 84.
- Sky Drake - xp changed from 80 to 76, cost changed from 28 to 32.
- Saurian Ambusher - hp changed from 36 to 38, cost changed from 24 to 22.
- Saurian Soothsayer - melee attack strikes changed from 2 to 3, cost changed from 25 to 28.
- Saurian Spearthrower - melee damage changed from 6 to 5.
- Drake Blademaster - cost changed from 47 to 62.
- Drake Warden - cost changed from 46 to 62.
- Drake Enforcer - cost changed from 44 to 58.
- Drake Flameheart - cost changed from 51 to 66.
- Inferno Drake - cost changed from 51 to 64.
- Hurricane Drake - cost changed from 43 to 59.
- Saurian Flanker - hp changed from 47 to 52, cost changed from 46 to 42.
- Saurian Javelineer - ranged attack strikes changed from 5 to 4, cost changed from 52 to 42.
- Armageddon Drake - cost changed from 85 to 118.
- Dunefolk:
- Dune Burner - hp changed from 34 to 35, xp changed from 40 to 37.
- Dune Herbalist - cost changed from 14 to 13, xp changed from 39 to 36.
- Dune Rider - hp changed from 34 to 33, xp changed from 47 to 49.
- Dune Rover - hp changed from 32 to 33, xp changed from 43 to 40.
- Dune Soldier - cost changed from 18 to 17, xp changed from 43 to 39.
- Dune Skirmisher - xp changed from 34 to 39.
- Dune Explorer - xp changed from 80 to 73.
- Dune Swordsman - cost changed from 30 to 28, xp changed from 75 to 68.
- Dune Captain - cost changed from 30 to 29, xp changed from 75 to 74.
- Dune Spearguard - cost changed from 30 to 29, xp changed from 75 to 74.
- Dune Scorcher - ranged damage changed from 9 to 10, cost changed from 25 to 23, xp changed from 70 to 60.
- Dune Raider - cost changed from 34 to 35, xp changed from 70 to 77.
- Dune Swiftrider - xp changed from 65 to 62.
- Dune Sunderer - xp changed from 76 to 85.
- Dune Apothecary - cost changed from 27 to 23, xp changed from 65 to 50.
- Dune Falconer - hp changed from 38 to 39, cost changed from 23 to 29, xp changed from 78 to 70.
- Dune Strider - hp changed from 39 to 42, cost changed from 23 to 29, xp changed from 74 to 64.
- Naga Ophidian - hp changed from 43 to 44, cost changed from 22 to 24, xp changed from 76 to 62.
- Naga Ringcaster - hp changed from 40 to 41, cost changed from 22 to 24, ranged damage changed from 7 to 8, xp changed from 70 to 62.
- Dune Blademaster - hp changed from 69 to 76.
- Dune Spearmaster - hp changed from 67 to 68.
- Dune Cataphract - mace melee attack damage changed from 14 to 15, lance damage changed from 13 to 14, cost changed from 62 to 69.
- Dune Harrier - cost changed from 47 to 50.
- Dune Sky Hunter - cost changed from 50 to 54.
- Knalgan Alliance:
- Dwarvish Fighter - xp changed from 41 to 45.
- Dwarvish Thunderer - xp changed from 40 to 35.
- Dwarvish Guardsman - ranged damage increased from 5 to 6, xp changed from 47 to 40.
- Footpad - xp changed from 36 to 35.
- Thief - xp changed from 28 to 29.
- Poacher - xp changed from 29 to 28.
- Gryphon Rider - cost changed from 24 to 23, xp changed from 38 to 46.
- Dwarvish Steelclad - xp changed from 74 to 88.
- Dwarvish Thunderguard - cost changed from 27 to 24, xp changed from 95 to 65.
- Dwarvish Stalwart - hp changed from 54 to 59, ranged damage changed from 8 to 9, xp changed from 85 to 78.
- Outlaw - cost changed from 26 to 24, hp changed from 42 to 47, xp changed from 77 to 71.
- Rogue - xp changed from 70 to 80, cost changed from 24 to 25.
- Trapper - hp changed from 45 to 49, melee damage changed from 4 to 5, xp changed from 65 to 73.
- Gryphon Master - cost changed from 38 to 40.
- Dwarvish Lord - cost changed from 50 to 69.
- Dwarvish Sentinel - cost changed from 44 to 63.
- Dwarvish Dragonguard - cost changed from 46 to 61.
- Fugitive - hp changed from 62 to 68, cost changed from 53 to 55.
- Huntsman - cost changed from 50 to 43.
- Ranger - cost changed from 52 to 43.
- Assassin - cost changed from 44 to 46.
- Northerners:
- Orcish Archer - xp changed from 30 to 32.
- Naga Fighter - xp changed from 32 to 33.
- Wolf Rider - xp changed from 30 to 34.
- Orcish Warrior - cost changed from 26 to 23, xp changed from 60 to 67.
- Goblin Pillager - cost changed from 28 to 31.
- Troll - cost changed from 27 to 25, xp changed from 66 to 58.
- Troll Rocklobber - ranged damage changed from 17 to 19, hp changed from 51 to 53.
- Naga Warrior - cost changed from 24 to 22, xp changed from 66 to 56.
- Orcish Crossbowman - melee damage changed from 4 to 6, ranged pierce damage changed from 8 to 9, hp changed from 43 to 46, cost changed from 21 to 22, xp changed from 80 to 43.
- Orcish Slayer - cost changed from 26 to 21, xp changed from 64 to 62.
- Orcish Warlord - cost changed from 48 to 52.
- Direwolf Rider - cost changed from 44 to 52.
- Troll Warrior - cost changed from 44 to 49.
- Naga Myrmidon - cost changed from 48 to 47.
- Orcish Nightblade - cost changed from 43 to 53.
- Orcish Slurbow - cost changed from 43 to 37.
- Loyalists:
- Cavalryman - blade resistance changed from 30% to 20%, xp changed from 40 to 44.
- Bowman - xp changed from 39 to 35, melee damage changed from 4 to 5.
- Horseman - cost changed from 23 to 24, xp changed from 44 to 54.
- Merman Fighter - xp changed from 36 to 34.
- Mage - xp changed from 54 to 48.
- Javelineer - ranged damage increased from 11 to 13, cost changed from 25 to 24.
- Pikeman - cost changed from 25 to 24, xp changed from 65 to 69.
- Swordsman - xp changed from 60 to 80.
- Knight - cost changed from 38 to 50, xp changed from 120 to 100.
- Lancer - cost changed from 44 to 47.
- Shock Trooper - cost changed from 35 to 28, xp changed from 110 to 65.
- Red Mage - cost changed from 38 to 35, xp changed from 100 to 83.
- White Mage - cost changed from 38 to 31, xp changed from 136 to 75.
- Dragoon - cost changed from 28 to 29, xp changed from 95 to 80.
- Longbowman - cost changed from 26 to 23, xp changed from 68 to 65.
- Duelist - cost changed from 29 to 31, xp changed from 90 to 80.
- Merman Warrior - cost changed from 26 to 24, xp changed from 80 to 60.
- Lieutenant - cost changed from 34 to 31, xp changed from 80 to 85.
- Halberdier - cost changed from 44 to 52.
- Royal Guard - cost changed from 44 to 61.
- Grand Knight - hp changed from 78 to 84, lance damage changed from 17 to 19, cost changed from 58 to 86.
- Paladin - hp changed from 65 to 77, lance damage changed from 15 to 16, melee damage changed from 8 to 9, cost changed from 58 to 82.
- Iron Mauler - cost changed from 50 to 49.
- Arch Mage - cost changed from 59 to 63, xp changed from 220 to 150.
- Mage of Light - cost changed from 60 to 59.
- Cavalier - cost changed from 52 to 62.
- Master Bowman - cost changed from 46 to 50.
- Master at Arms - melee damage increased from 7 to 8, cost changed from 44 to 65.
- Merman Hoplite - cost changed from 43 to 45.
- Merman Triton - cost changed from 43 to 46.
- General - hp changed from 50 to 55, cost changed from 54 to 66, xp changed from 180 to 105.
- Great Mage - ranged damage changed from 16 to 17, cost changed from 72 to 110.
- Grand Marshal - hp changed from 60 to 68 cost changed from 66 to 101.
Miscellaneous and Bug Fixes
- Prevent duplicate advancements from being added to unit type. (issue #7009)
- When `[unit]` recalls a unit, remove it from the recall list before firing `[event]name=unit_placed`. (issue #7769)
I'm proud to announce that a few days ago Wesnoth turned 20 years old! Starting with version 0.1 tagged on June 18th 2003, Wesnoth has grown with the help of hundreds of volunteers continually improving all aspects of the game from its music and art to its engine functionality, game features, and balance. And while admittedly Wesnoth is no longer at the peak of its popularity, there are still many developers, translators, add-on authors, moderators, and members of the community helping to keep Wesnoth going strong. It was due to all your help that 1.16 was able to be released with significant improvements over 1.14, and 1.18 is looking to be even better with a variety of new features and refinements over 1.16. Thank you everyone for all your work, and here's to another 20 years of Wesnoth! For anyone who wants to check out older versions of Wesnoth, versions going back to 1.0 are available on our SourceForge repository at https://sourceforge.net/projects/wesnoth/files/ for Windows and macOS (32-bit however). For those interested in going even further back, you can check out https://irydacea.me/blog/category/wesnoth-evolution/ where back in 2010 Iris took a look through Wesnoth versions 0.1, 0.2, and 0.3.
Campaigns
- Heir to the Throne
- S19c and S20b: Improve rewards by giving a Lieutenant instead of a Sergeant.
- Northern Rebirth
- Large grammar correction to the English text. (PRs #7643, #7663, #7676, #7680, #7682, #7683)
- UtBS
- Make the name of the dark assassin translatable again. (PR #7696)
- Added po hints (translation hints).
- World Conquest
- Fixed a bug that the epic trait raised XP requirements for advancements that cost less than 60 XP.
Multiplayer
- Add some search terms to the match history dialog. (PR #7571)
Terrain
- Added ruined walls terrain variations: Xur (damaged Xu); Xor (damaged Xos); and Exos (ruined Xos, is Flat/Cave alias). (PR #7629)
Translations
- Updated translations: British English, Czech, Finnish, French, Spanish
- Python files are now searched for translatable strings.
- Added the `wesnoth-tools` textdomain for WML-maintenance tools.
User interface
- Fix file dialogs (e.g. Save As dialog in the Map Editor) not listing /run/media/USER as a possible file location on modern Linux distributions.
- Update the preferences windows Display resolution list if the game window is resized.
- Better error handling if the data directory is not found. (issue #6883)
- The Log File button is now available in the game version info dialog on non-Windows platforms.
- Rearranged some elements in Display preferences.
Miscellaneous and Bug Fixes
- Move multiplayer macros to proper folder. (PR #7647)
- Fixed updating POT files with version 0.68-1 of the po4a toolsuite. (issue #7149)
- On platforms where logging used to go to stdout/stderr by default, its now copied there even when logging to a file. (PR #7672)
- `GUI.pyw` now has the i18n mechanics to be translatable, but please wait until the English has been revised.
- Refactored hotkey handling, so it no longer has two different codepaths for WML menu items.
- The old `utils/change_textdomain` script has been removed. (PR #7688)
- wmlxgettext now supports extracting all textdomains at once. (PR #7624)
- Fixed a crash in the autocorrect handling on the Wesnoth console. (issue #7412)
Translations
- Updated translations: Arabic, British English, Czech, French, German, Italian, Spanish
User interface
- Fixed main menu Language button and Version label not being refreshed after switching languages without relaunching the game (issue #7437).
- Fixed changing game resolution in Preferences not refreshing the user interface as expected (issue #7436).
WML Engine
- Add support for distinct sub-achievements.
- Add [filter_ability] usable instead of [abilities][tag name] to filter attributes including the type of ability used.
Multiplayer
- The game no longer crashes when using "Back To Turn" after the game has ended in multiplayer #4236
Translations
- Updated translations: British English, Bulgarian, Czech, French, Italian, Spanish, Turkish
User interface
- The "Back To Turn" menu now replays the turn in singelplayer too. However, the Continue button can be used to resume the game from any given position.
WML Engine
- Added support for `[effect] apply_to=level` (PR #7512)
- Fixed a crash when encountering a scenario with missing sides (issues #7550,#7553,#7554)
Miscellaneous and Bug Fixes
- The replay viewer now also replays victory/defeat events properly #4667, #6180
- Fixes undo stack getting corrupted by reloading #7253
- Removed unused `--color` switch from wesnoth_addon_manager
Translations
- Updated translations: British English, Bulgarian, Chinese (Simplified), Czech, Dutch, French, German, Italian, Polish, Portuguese (Brazil), Spanish, Turkish
Miscellaneous and Bug Fixes
- wesnoth_addon_manager now supports SSL/TLS connection (using the `--secure` flag)
- wesnoth_addon_manager now supports IPv6 connection (using the `--ipv6` flag)
- Added new command line flag `--terms` to wesnoth_addon_manager (retrieves and prints the add-ons server upload terms)
- wesnoth_addon_manager now supports the `--version` flag (reports the current Wesnoth version)
- Removed unused `--color` switch from wesnoth_addon_manager
Campaigns
- Under the Burning Suns
- S05 Fixed the main cavern event not taking scouting into account. (issue #7394)
Packaging
- Curl is now a required dependency
Translations
- Updated translations: British English, Czech, French, Italian, Spanish
User interface
- The match history button in the multiplayer lobby is now enabled. This allows viewing the game history of the player you have selected in the righthand sidebar.
Miscellaneous and Bug Fixes
- wesnoth_addon_manager now supports SSL/TLS connection (using the `--secure` flag)
- wesnoth_addon_manager now supports IPv6 connection (using the `--ipv6` flag)
- Added new command line flag `--terms` to wesnoth_addon_manager (retrieves and prints the add-ons server upload terms)
- wesnoth_addon_manager now supports the `--version` flag (reports the current Wesnoth version)
- Linux SCons and CMake scripts now support enabling `_GLIBCXX_ASSERTIONS`.
Add-ons client
- Added automatic schema-validation of `_server.pbl` files when uploading an add-on. (PR #7239)
Campaigns
- Legend of Wesmere
- Adjusted gold and carryover between S11, S14 and S17. (issue #7230)
- S03: Fixed an event trigger when Urudin retreats. (PR #7221)
- S16: Updated screen flash to use new macros.
- Secrets of the Ancients
- S17: Use the new `screen_fade` visual effect.
- Son of the Black Eye
- S14: Fixed Grs dialogue not appearing during the intro. (issue #7280)
- The South Guard
- S04: Updated safeguard against AI leader stupidity to match map changes.
- Under the Burning Suns
- Quenoth Rework, including the major changes listed below. (PR #7349)
- Redesign of the Quenoth Fighter line, with multiple attacks instead of the formation ability.
- Redesign of the Quenoth Shaman line, with songs and the tailwind ability.
- Redesign of the Tauroch Rider line, giving both Tauroch and Rider one attack each.
- Hide XP bars for some enemies that are never expected to advance a level.
- World Conquest
- Fix mechanic when a commander replaces a dead leader. (issue #7284)
Editor
- Scrolling the map north or south can move the text that overlays the map, so it doesnt always obscure the southmost hexes of the map. (issue #6422)
Multiplayer
- Allied units orbs no longer look like the players own units orbs. (issue #7108)
- By default, they are now two-color during the allys turn.
- Added an advanced setting to always show them as single-color (the ally color).
- Add waterfall animations to Isars Cross. (PR #7348)
Terrain
- Added Art Placeholder overlay (terrain code `^Xxxx`), used for Isars Cross new waterfalls. (PR #7348)
Translations
- Updated translations: British English, Chinese (Simplified), Czech, Dutch, Finnish, French, Polish, Portuguese (Brazil), Spanish
- wmlxgettext always uses Unix-style file paths in .pot files, to reduce changes when working on different platforms. (issue #7380)
Units
- Add Merman Brawler and Citizen to core.
- Add Dwarvish Miner to core.
- Add Sand Scamperer unit.
- Giant Ant now advances to Soldier Ant, requiring 26 XP.
- Soldier Ant now costs 16 gold, has 35 HP and needs 50 XP to advance.
User interface
- Added icons for invulnerable and unhealable states. (PR #7363)
- The help browser shows groups (`[race]help_taxonomy=`) in subfolders. For example Humans/Dunefolk and Elves/Quenoth. (PR #7228)
WML API
- New `attacks_used` key in `[attack]` causes the attack to deduct more than 1 from `attacks_left`. (PR #7351)
- Fixed `[foreach]` when nested loops used the same variable name for the inner and outer loop. (issue #6305)
- New `[trait]require_traits=` and `[trait]exclude_traits=` to control random trait generation. (PR #7109)
WML Engine
- Added basic achievements functionality.
Miscellaneous and Bug Fixes
- Fixed a regression in 1.17.x resulting in overlarge unit HP and XP bars in some cases. (issue #7171)
- Fixed the editors unit tool crashing when placing a unit. (issue #7296)
- Many command-line options that log to stdout/stderr now automatically imply `--no-log-to-file`. (issue #7310)
- General consolidation of code paths for logging between Windows and non-Windows platforms.
- Fixed crash and missing output in `--report`.
- Schema validation accepts variables in `[harm_unit]alignment`.
- Schema validation no longer accepts the unused `[unit]hp_bar_scaling` and `[unit]xp_bar_scaling`.
- Fix an issue with schema validator not reporting errors at top level.
- The `unit_tree` tool which generates https://units.wesnoth.org/ now ignores the `[advancefrom]` tag.
- Fix the search for the game data directory when doing a local Visual Studio build.
- Fixed warnings when compiling with Boost 1.81.
Editor
- Fixed: the unit tool crashes when placing a unit (issue #7296).
Translations
- Updated translations: Finnish, Spanish
Miscellaneous and Bug Fixes
- Make the log messages about "Skipping duplicate unit variation ID" say which `[unit_type]` is causing the error.
Add-ons server
- Added support for allowing multiple people to upload updates to an add-on (PR#7268)
Campaigns
- Sceptre of Fire
- S9: Update for terrain codes introduced in 1.17.9 (issue #7210)
- Heir to the Throne:
- S03: Rewrite intro text, including a hint about training troops (PR #7214)
- S05B: Delurin now has traits Loyal + resilient + intelligent
- Liberty:
- The non-loyal character Delurin now has traits resilient + intelligent
Translations
- Updated translations: Arabic, British English, Czech, Finnish, French, Italian, Japanese, Portuguese (Brazil), Turkish
Units
- Moved Kraken from campaigns to core, updated sprite
- Added some dragonfly units to "monsters"
- Dunefolk Rover portrait added
- Update sprites for Loyalist General, Spearman, Cavalryman, and Grand Knight
- Add more ant types
- Fix and adjust Falcon and Elder Falcon attacks
User interface
- Improved the layout of the orb colors dialog, and added tooltips.
Miscellaneous and Bug Fixes
- Fixed a crash when moving certain walking corpse variations north due to missing animations. (issue #7190)
- Fixed special notes being duplicated when storing units (issue #7153).
- wmllint now validates `rank=` values in `[campaign]` (issue #7224)
- Fixed a crash when checking if abilities are active during game initialisation after loading a saved game. (issues #5643, #7238)
Translations
- Updated translations: Arabic, British English, Czech, Finnish, French, Italian, Japanese, Polish, Portuguese (Brazil), Turkish
Miscellaneous and Bug Fixes
- wmllint now validates `rank=` values in `[campaign]` (issue #7224)
- Add disconnect check to alert users when they lose connection to the multiplayer server (issue #1336)
- Fixed a crash when checking if abilities are active during game initialisation after loading a saved game. (issues #5643, #7238)
- Fix a crash when an out-of-bounds side number is used in Luas `sync.evaluate_multiple` (PR #7222)
- Fixed special notes being duplicated when storing units (issue #7153).
Terrain
- `^Qhhf` and `^Qhuf` terrain codes available to allow forest terrain on bluff/gulch hexes
Translations
- Updated translations: British English, Czech, French, Polish, Portuguese (Brazil)
Units
- Merkfolk units movement cost on forest and hills reduced from 5 to 4.
- Orcish Slayer can advance to the Orcish Nightblade by default.
- Orcish Slayer's xp required to level up reduced from 100 to 64.
- Dunefolk Falconer portrait added.
Miscellaneous and Bug Fixes
- Fixed not being able to undo moves (bug #6898)
Terrain
- Change codes "Irs, Ias, Icr, Ior, and Icn" to "Isr, Isa, Isc, Iwo, and Iwc", respectively
Translations
- Updated translations: British English, Czech, French, Italian, Portuguese (Brazil)
User interface
- Bot hosted games are now show on a separate tab from player hosted games.
Miscellaneous and Bug Fixes
- Add disconnect check to alert users when they lose connection to the multiplayer server (issue #1336)
One of the joys of Wesnoth is amassing an army of high-level recruits over a long campaign. When playing with friends, though, most multiplayer games are short, one-off encounters. When the scenario ends, you can say goodbye to that Red Mage you painstakingly leveled up. Wouldn't it be great if you could play a whole campaign with friends? Well you can with World Conquest, a randomly-generated Co-op campaign for 1-3 players. Since including it in our 1.16 release, it's become the second-most popular game on our multiplayer server.
What to expect
A game of World Conquest works like most other Wesnoth campaigns. You'll need to seize villages and kill enemy leaders to win. But there's a twist. When you recruit your first unit, you can choose bonuses for your side by giving them artifacts, training and heroes.
Every time you win and start a new scenario, you'll get to choose another set of bonuses. Choose carefully! The right bonus combos can really increase the power of your units.
A different campaign every time
Every scenario in World Conquest is randomly generated -- random maps, random enemies, random heroes, random bonuses. It's a great way to try out a new strategy or faction, like the Dunefolk we introduced in the last release.
How to play
To start a new Co-op game of World Conquest, follow these steps. 1. From the Main Menu click Multiplayer. 2. Select Join Official Server and click ok. 3. Once you're in the lobby, click Create Game. 4. Find the dropdown that says Scenarios and change it to Multiplayer Campaigns. 5. Select World Conquest 2p (two players) or World Conquest 3p (three players) and click Create Game. 6. Select your difficulty and click Play. (Start on Easy if you're not sure -- World Conquest is really hard.) 7. Tell your friend your game room's name so they can join you, or wait for another player. 8. Click I'm Ready to start the game. Remember, this is a campaign and you'll need more than one sitting to finish it! When you're ready for a break, be sure to save the game before quitting. Go to Menu > Save Game and give it a name you can remember. To resume a saved campaign, follow these steps. 1. From the Main Menu click Multiplayer. 2. Select Join Official Server and click ok. 3. Once you're in the lobby, click Create Game. 4. Click Load Game on the left. 5. Find your saved game and click Load. 6. Tell your friend your game room's name so they can join you, or wait for another player. 7. Click I'm Ready to start the game.
Want to play by yourself?
You can play World Conquest by yourself. Follow the steps above, but join the Local Game in step 2 and select World Conquest 1p in your game room.
Editor
- add "elevation" terrain group
Multiplayer
- The /report command now opens a dialog rather than simply allowing free-form text after the command.
Terrain
- Expansion of cosmetic "lower terrain" to "higher terrain" and more transition graphics.
Translations
- Updated translations: British English, Chinese (Simplified), Czech, French, Italian, Portuguese (Brazil), Russian, Turkish
Miscellaneous and Bug Fixes
- Fixed highlighted movement range when hovering over units after their owner ends turn. It now shows their max movement next turn, instead of the remaining moves from their previous turn. (issue #6716)
- Stopped wmllint adding `wesnoth-icon.png` to `[message]`s that dont already have an image. (PR #6991)
Translations
- Updated translations: Arabic, British English, Bulgarian, Chinese (Simplified), Chinese (Traditional), Czech, French, Italian, Japanese, Portuguese (Brazil), Russian, Swedish, Turkish
Miscellaneous and Bug Fixes
- Fixed drake flare leadership animation over water (issue #3996)
- Fixed animations not clearing properly when zoomed (issue #6589)
- Fixed the `{IS_HERO}` macro to avoid losing the hero ellipse when a unit levels up
- Fixed highlighted movement range when hovering over units after their owner ends turn. It now shows their max movement next turn, instead of the remaining moves from their previous turn. (issue #6716)
- Fixed out of sync errors occurring when unused add-ons contain the [resistance_defaults] or [terrain_defaults] tags (issue #6650)
By Lord-Knightmare
There are more than 450 add-ons available for 1.16 and this summer saw a lot of activity on the add-on server. Here are some of the highlights from what our user community has created.
Era of Magic
An update to one of the most popular unofficial eras was released in late May. Era of Magic 3.8.3 brought us five more units and some exciting new treats, like the Mirrorshield's deflect magic ability. Now's a good time to revisit the Al-Kamija, the Kharos, and all the factions from Era of Magic.
Ashen Hearts
This challenging campaign, which tells the history of the drakes and the secret to their inner fire, is now available for 1.16. Lead Herkarth and his people to the source of a mysterious power effecting the drakes deep in the ancient Heartfang mountains. With custom units, tricky puzzles, and easter eggs, this campaign brings much love to an under-played faction.
The Great Steppe Era
The team behind this growing era delivered a major update (1.4), with innovative new tactics like castle-breaking, unit-pulls and long-range attacks. They have also put together a short campaign, Ogre Crusaders, if you want to cut your teeth on something longer than a single scenario.
The Unstoppable Legion
A true classic, this add-on may be the most well-written horse-back campaign ever and it's now available for 1.16. Command a cavalry force and use your mobility to outflank and defeat an unstoppable legion of cultists, soldiers, and creatures of the night.
Eastern Europe at War
This unique era features more than 200 historical units in more than a dozen factions inspired by 18th century warfare in Europe. A new major version was just released and the maintainers are looking for more contributors.
Struggle for Freedom
Another classic, this elven campaign is back after several years being unmaintained. It has been rebuilt to use units from the War of Legends era, and features dungeon-crawling scenarios and small-squad gameplay.
How to play an add-on
Follow these steps to install an add-on and play it. 1. From the main menu, click Add-ons. 2. Click Connect to join addons.wesnoth.org, the official add-on server. 3. Browse or search the list of add-ons. 4. Click on the add-on to read more about it. 5. Click
to install the add-on. 6. Click Exit to return to the main menu. Once your add-on is installed, you can play it like any other game of Wesnoth. Campaign add-ons can be found in the campaigns menu. Multiplayer eras and scenarios are available when you start a multiplayer game.
Got a fun idea?
Every add-on starts with a good idea. Here's how to get started making your own maps, units, scenarios and campaigns.
Terrain
- Generalized "lower terrain" similar to the mid-level in lava/chasm. Cosmetic and unwalkable versions. (PR #6927)
Translations
- Updated translations: Arabic, British English, Bulgarian, Chinese (Traditional), Czech, Finnish, French, Italian, Portuguese (Brazil)
WML Engine
- Add the pre_attack event.
Miscellaneous and Bug Fixes
- Implemented logging to file for Linux and macOS, and enabled it be default for Steam Linux.
- Fixed drake flare leadership animation over water (issue #3996)
- Fixed animations not clearing properly when zoomed (issues #6589, #6891, #6892)
- Fixed inconsistent cropping of unusually-sized item images (issue #6118)
- Fixed the `{IS_HERO}` macro to avoid losing the hero ellipse when a unit levels up
- Stored credentials are now encrypted with AES rather than RC4. This will result in credentials needing to be re-entered the first time when logging in with this version.
Campaigns
- The South Guard
- S4: Fixed replay OOS on victory event (issue #6832)
- Under the Burning Suns
- S8: Fixed replay OOS on victory event (issue #6267)
- World Conquest
- Fixed Bezoar artifact being bugged and broken.
Lua API
- New `wesnoth.interface.screen_fade` function applies an overlay colour to the game display, fading over the given duration (PR #6864).
- New functions have been added to register game events from Lua: `wesnoth.game_events.add`, `wesnoth.game_events.add_menu`, `wesnoth.game_events.add_repeating`, `wesnoth.game_events.add_wml`.
- Both the action and the filter can now be a native Lua function, if needed.
- All features of the `[event]` tag are available.
- The primary API is `wesnoth.game_event.add` - the others are shortcuts for common use-cases.
- `wesnoth.game_events.fire` (renamed from `wesnoth.fire_event`) now supports passing unusual event-specific data such as damage in an attack event or previous owner in a village capture event.
- `wesnoth.fire_event_by_id` is renamed to `wesnoth.game_events.fire_by_id`.
- `wesnoth.current.event_context` now has an additional `data` attribute that contains the full event data, including the former owner in a village capture event (which was previously never exposed anywhere).
- `wesnoth.remove_event_handler` renamed to `wesnoth.game_events.remove` for consistency with other event functions.
Packaging
- Increased minimum required version of SDL to 2.0.10 for non-macOS platforms.
- Increased minimum required version of SDL to 2.0.22 and the minimum required OS version to 10.12 for macOS due to needing the fix https://github.com/libsdl-org/SDL/commit/3bebdaccb7bff8c40438856081d404a7ce3def30.
Rendering Engine
- Large changes have been made to Wesnoth's rendering engine, enabling hardware acceleration for the majority of components and resolving many long-standing issues. Performance should be greatly increased, and CPU and GPU usage greatly decreased in almost all situations. Issues confirmed resolved: #1291, #1350, #1605, #1755, #2059, #2458, #2618, #2865, #3238, #3255, #3421, #3592, #3798, #3937, #4210, #4460, #4877, #5115, #5420, #5494.
Translations
- Updated translations: Arabic, British English, Czech, Finnish, French, Italian, Japanese, Swedish
Units
- Fixed Wardens and Arbiters animations popping on water tiles (issue #6508)
- Updated some Loyalist sprites: Sergeant, Lieutenant, Swordsman, Pikeman, Royal Guard, Halberdier
- Animations for Nightgaunt
WML Engine
- A new interface action `[screen_fade]` provides a smooth screen fade effect which also covers units (issue #6745).
- Events now support filter conditions using the Wesnoth Formula Language with a new `filter_formula` key.
- It is now possible for variable interpolation in an event name to expand to multiple event names - the name is split on commas both before and after variable interpolation.
- The `[fire_event]` tag now supports a `[data]` subtag that can be used to pass any arbitrary information to the event. In particular, it supports passing damage to an attack event and former owner to a village capture event.
Miscellaneous and Bug Fixes
- Fixed being unable to interact with units when Scroll Lock is active (issue #6759)
- Fixed the addon manager UI blanking incorrectly (issue #6787)
- Implemented a workaround for bad SDL rectangle drawing in some versions (issue #6799)
Campaigns
- Eastern Invasion
- S07a:
- Better handling for side 2 (issue #4145)
- Fixed Grug upkeep, added dialogue about ogres joining (issue #4145)
- S07a:
- Northern Rebirth
- S1: Fixed Al'Tar confusing an orc for a slave (issue #6735)
- Under the Burning Suns
- S5: Enforce encounter with the Cloaked Figure (issue #6364)
Translations
- Updated translations: Arabic, British English, Chinese (Traditional), Czech, Polish, Finnish, French
Units
- Fixed Wardens and Arbiters animations popping on water tiles (issue #6508)
User interface
- Resolved broken layout in some low-resolution configurations (issue #5620, #6544)
Miscellaneous and Bug Fixes
- Fixed frequent crashes occurring in multiplayer matches (issue #6863).
- Fixed path finding visibility bug that sometimes caused OOS errors on maps with tunnels and at least three sides that do not share vision (PR #6744)
- Fixed being unable to interact with units when Scroll Lock is active (issue #6759)
- Removing the Protect Unit Micro AI no longer causes a Lua error
- Fixed chance of being unscathed in damage calculation for some fights in which both units can die (issue #6590)
- Fixed visibility bug in ai_helper.get_attackable_enemies() for some complex filters
- Fixed bug in Bottleneck Micro AI involving units without moves on terrain with multiple open passages (issue #6599)
- Fixed error in Castle Switch CA of the Experimental AI after a leader was killed (issue #6440)
- Fixed error in retreat-injured CA when regenerate ability code does not include a value= key
- Retreat-injured CA no longer takes villages from allies
- Experimental AI no longer uses generic_recruit_engine: fixes a data leakage bug between Experimental AIs of different sides
- Experimental AI recruit rushers: include unit types from extra_recruit (issue #4924)
- Fix segfault when weapon is removed during attack (issues #4927 and #5914)
- Add no-unit error message for unit debug command (issue #6116)
- Significantly improve efficiency of move-to-any-enemy CA
Campaigns
- Eastern Invasion
- S1: Fixed campfire not having a sound (issue #5766)
- S07a:
- Better handling for side 2 (issue #4145)
- Fixed Grug upkeep, added dialogue about ogres joining (issue #4145)
- Northern Rebirth
- S1: Fixed Al'Tar confusing an orc for a slave (issue #6735)
Translations
- Updated translations: Arabic, Chinese (Traditional), Czech, Finnish, French, Japanese, Polish
User interface
- High-DPI font and image rendering is now enabled across the entire UI.
Miscellaneous and Bug Fixes
- wmllint automatically removes the obsolete lines `{SOUND:SLOW}` and `{SOUND:POISON}`
- Fixed path finding visibility bug that sometimes caused OOS errors on maps with tunnels and at least three sides that do not share vision (PR #6744)
- Fixed transparency of submerged units when zoomed (issue #3746)
- Fixed mouse input mapping problems on MacOS (issue #6715)
- Removing the Protect Unit Micro AI no longer causes a Lua error
- Fixed chance of being unscathed in damage calculation for some fights in which both units can die (issue #6590)
- Fixed visibility bug in ai_helper.get_attackable_enemies() for some complex filters
- Fixed bug in Bottleneck Micro AI involving units without moves on terrain with multiple open passages (issue #6599)
- Fixed error in Castle Switch CA of the Experimental AI after a leader was killed (issue #6440)
Add-ons client
- Fixed: using the up or down arrow keys in small-screen mode returned to the title screen (issue #6485).
- Add-on passwords that are not stored in the `_server.pbl` can now be stored in the same credentials file as multiplayer passwords (PR #6543).
Campaigns
- Delfadors Memoirs
- S11: Finding Chantal will now share her sides vision with the player, as originally intended.
- S14: Smoother appearance of enemies and added dialogue (#6176).
- Descent into Darkness
- S08: Prevent Spectral Servant from picking up the book (issue #6576).
- Northern Rebirth
- S05a_01: Solve units getting stuck in the wall before the spider chamber (issue #6607).
- Sceptre of Fire
- Fixed Thursagan's Arcanister advancement being "lost" after dismounting a minecart.
- Improvements and spelling corrections to the English prose text (PR #6177).
- S9: Allow Grypon Riders to complete the scenario (issue #6332)
- Son of the Black Eye
- Improvements and spelling corrections to the English prose text (PR #6166).
- The Rise of Wesnoth
- S22: Fixed the possibility of a misplaced dialogue when a bridge was broken (issue #6376).
- Under the Burning Suns
- S08: Kromph and the Dust devil now trigger a critical event (issue #6211).
- World Conquest
- Updated the modding instructions, helping add-on authors add extra factions etc.
Editor
- Add documentation for the magenta D and special terrain overlays (PR #6460).
- Added some missing terrain groupings (issue #6643)
Multiplayer
- Fixed updating add-ons when joining a game that requires a new version (issue #6383).
- Add a `/clear` command for the lobby-chat window.
Packaging
- flatpak: update freedesktop runtime version to 21.08 (issue #6497).
Terrain
- Better transition for Swamp to Icy Cobbles (PR #6491).
- New graphics variations for icy and rocky terrains.
- The help browser adds special notes for castles and healing terrains (PR #6461).
Translations
- Updated translations: British English, Bulgarian, Chinese (Simplified), Czech, French, Italian, Japanese, Portuguese (Brazil), Russian
- Fixed the stats for Spanish being overwritten by the stats for Spanish (Latin American).
Units
- Saurian sprites cleanup (PR #6450).
- Various small sprite updates for sea serpents and swamp lizards (PR #6452).
User interface
- Mark the Plan Unit Advance mod as MP-only so it doesn't show up as available for campaigns.
Miscellaneous and Bug Fixes
- wmlscope can now report about calls to deprecated macros when using the `--unresolved` switch.
- wmlxgettexts old behavior of processing files in the order theyre given on the command line can be selected with the `--no-sort-by-file` option (PR #6586).
- Fixed a crash with "laststrike" (firststrike given to the opponent) weapon specials (issue #6575).
- Fixed a crash with locally-edited add-ons that had neither `_server.pbl` nor `_info.cfg` (issue #6389).
- Added more unit tests for weapon specials.
- Resolve crash on systems using musl implementation of libc (issue #6603)
- The `--stringfreeze` (`-Z`) command line flag has been removed from wmllint.
- The checks for the old special notes system have been removed from wmllint; the `notecheck off`, `notecheck on` and `match
with ` magic comments no longer have any effect. - Resolved title screen flashing during the loading screen (issue #2395)
- Fixed erratic keyboard and mouse scroll speed (issue #3607)
- wmllint automatically removes the obsolete lines `{SOUND:SLOW}` and `{SOUND:POISON}`
The MacOS build has a known issue with input coordinates being wrong. This will be fixed in 1.17.5.
Campaigns
- Sceptre of Fire
- S9: Allow Grypon Riders to complete the scenario (issue #6332)
- Under the Burning Suns
- S5: Enforce encounter with the Cloaked Figure (issue #6364)
- S8: Spawned units will now be unable to be blocked into walls (PR #6677)
Editor
- Added some missing terrain groupings (issue #6643)
Terrain
- new terrain variations
- `Rrd` for desert road/cobbles - just a recolor, but has some different transitions than the normal roads
- `^Bsa*` for snowy stone bridge
Translations
- Updated translations: British English, Chinese (Simplified), Czech, French, Italian
User interface
- Added integer scaling options for the entire UI.
Miscellaneous and Bug Fixes
- The `--stringfreeze` (`-Z`) command line flag has been removed from wmllint.
- The checks for the old special notes system have been removed from wmllint; the `notecheck off`, `notecheck on` and `match
with ` magic comments no longer have any effect. - Resolved title screen flashing during the loading screen (issue #2395)
- Added the {PASSABLE_HEX} macro to core and deleted it from TRoW S19 (PR #6677)
- Converted most portrait images to webp (PR #6611).
- Hardware accelerated rendering has been enabled in SDL.
Add-ons client
- The `forum_auth` attribute now allows authenticating with your forum credentials, as well as no longer requiring the `passphrase` or `email` attributes be populated in the `_server.pbl`. (PR #5866)
Campaigns
- Descent into Darkness
- S08: Prevent Spectral Servant from picking up the book (issue #6576)
- Northern Rebirth
- S05a_01:
- Solve units getting stuck in the wall before the spider chamber (issue #6607)
- Enhance dialogue between Tallin and Abhai (issue #6608)
- S05a_01:
- Sceptre of Fire
- Fixed Thursagan's Arcanister advancement being "lost" after dismounting a minecart (PR #6484).
- Improvements and spelling corrections to the English prose text (PR #6177).
Lua API
- New `wesnoth.interface.add_overlay_text` function allows placing arbitrary floating text anywhere on the screen - like `[print]` but with more options (PR #5837).
Terrain
- New palisades terrain (^Eqp) and general fence terrain macros cleanup
- Rubble pile overlay terrain now connects with adjacent rubble piles
- Replace old-style terrain macros (PR #6606)
Translations
- Updated translations: British English, Czech, French, Italian
User interface
- Map labels are scaled by zoom (PR #6604).
- Revamped the Game Load dialog.
Miscellaneous and Bug Fixes
- Reduced the size of Isar's Cross map background images.
- Resolve crash on systems using musl implementation of libc (issue #6603).
- Refactoring of the C++ GUI2 event dispatcher.
- Refactoring of the `display` class' theme initialization.
- Fixed a crash with "laststrike" (firststrike given to the opponent) weapon specials (issue #6575).
- Added more unit tests for weapon specials.
Add-ons client
- Add-on passwords that are not stored in the _server.pbl can now be stored in the same credentials file as multiplayer passwords. (PR #6543)
Packaging
- SDL2_image now requires webp support be enabled. (PR #6392)
- Lua is now a submodule. (PR #6549)
Translations
- Updated translations: British English, Bulgarian, Czech
Miscellaneous and Bug Fixes
- wmlscope can now report about calls to deprecated macros when using the `--unresolved` switch
- Webp images can now be used in mainline and in add-ons. (PR #6392)
Add-ons client
- Fixed: using the up or down arrow keys in small-screen mode returned to the title screen (issue #6485)
- Set the right default port number for the 1.17.x add-ons server.
Campaigns
- Delfadors Memoirs
- S11: Finding Chantal will now share her sides vision with the player, as originally intended.
- S14: Smoother appearance of enemies and added dialogue (#6176)
- Sceptre of Fire
- Fixed Thursagan's Arcanister advancement being "lost" after dismounting a minecart.
- The Rise of Wesnoth
- S22: Fixed the possibility of a missplaced dialogue when a bridge was broken (issue #6376)
- Under the Burning Suns
- S08: Kromph and the Dust devil now trigger a critical event (issue #6211)
- World Conquest
- Fixed artifacts "draining" HP on pick-up.
Lua API
- Upgrade to Lua 5.4.4.
Translations
- Updated translations: Czech, Italian, Portuguese (Brazil), Russian
Patch 1.16.2 is out for all players. The first release of our 1.17.0 development series is now also available as a beta channel! Keep in mind 1.17 builds are experimental and can have unexpected bugs.
1.16.2:
Campaigns
- A Tale of Two Brothers
- The mercenary will now spawn in a less sudden way (issue #6183)
- Delfadors Memoirs
- S07: Clarified objectives (issue #5608) and remove End Turn being required to trigger victory (issue #6173)
- Descent into Darkness
- S08: Prevent possibility of Darken Volk advancing to Lich (issue #6351)
- Heir to the Throne
- S05b: Temples given an aged appearance to match ancient temples description (issue #5576)
- Liberty
- S06: Enforce failure condition for allied team (issue #6019)
- Northern Rebirth
- Give Eryssas side a consistent team color (issue #5375)
- Sceptre of Fire
- S04: Mining objectives are much clearer now (issue #6154)
- Secret of the Ancients
- S06: Ardonna should no longer mistake hostile bats as my pet
- The Rise of Wesnoth
- S08: The appearance of Naga is now smoother (issue #6140)
- S19: The trolls gold is automatically collected upon victory if not already obtained (issue #6141)
- S19: Avoid units spawning over chasms
- Remove time-runs-out lose condition for final scenario (issue #6109)
- Under the Burning Suns
- Avoid a few possibilities where the Dust Devil could speak (issue #4892)
- Avoid dehydration status icon persisting into the next scenario (issue #5687)
- Correct Travelers Ring description (issue #6043) and add an icon overlay (issue #6126)
- S02: Pinnacle rock is now shown during dialogue (issue #6125)
- S05: Avoid village just taken by the player being re-assigned to the enemy (issue #6187)
- S06b:
- Account for non-elvish units encountering Dwarf Sergeant (issue #6196)
- Grog will not die as quick now (issue #6196 & #6197)
- Hermit dialogue cannot be accidentally skipped now (issue #6196)
- Fixed bug where tentacles would not spawn (issue #6196)
- Fast units cannot get stuck on the wall now (issue #6196)
- Camera now moves to where the charges are blown up (issue #6197)
- Fixed weird scout AI behaviour (issue #6196)
- S09: Rebels joining Kalehs side are now loyal (issue #6229 and #6365)
- The last unit killed to trigger certain events should no longer linger during those events (issue #6341)
- The Dark Assassins race is not revealed until uncloaked (issue #6213)
- The Dust Devils XP bar is now blue (issue #6212)
- Winds of Fate:
- New Drakes-centric Campaign added to mainline
- World Conquest:
- Fixed for Winged Scepter not giving the correct defence values
- Corrected the attack icon of ice bow from a lightning bolt to an iceball
Editor
- Avoid rare crash situation after editing scenarios (issue #5883)
Lua API
- Fixed an error in `gui.get_user_choice()` and added support for the current DescriptionWML syntax (PR #6247)
Translations
- Added translations: Spanish (Latin American)
- Updated translations: British English, Bulgarian, Chinese (Simplified), Chinese (Traditional), Czech, Dutch, Finnish, French, Indonesian, Italian, Japanese, Polish, Portuguese (Brazil), Russian, Scottish Gaelic, Spanish, Turkish.
- gettext plural forms now have caret prefixes stripped as well (PR #6094).
Units
- Added attack image for the Bone Knights trample
User interface
- Added a VSync option (issue #5018). This defaults to enabled and is available in Preferences -> Display only with SDL 2.0.17 and later as older versions do not support VSync with the software renderer.
- The names of the abilities used as specials appear in the attack prediction window with specials weapons
- Added a prompt to allow migrating settings and redownloading add-ons used in a previous version of Wesnoth when starting a new versions for the first time.
- Ban expiry intervals in the MP UI now only mention the most significant time unit (e.g. "3 minutes" instead of "3 minutes, and 20 seconds") (PR #6097).
- Steam cloud file is no longer listed in the Load Game dialog.
- Redefine green text in dialogs and tool-tips so they are no longer too dark with recent Pango versions (issue #4348)
- Gave the main menu's Language button a label again, now displaying the current language.
- Tweaked margins around the main menu's bottom row.
- Difficulty no longer displayed in the Load Game dialog when it is not relevant to a save file (issue #5321)
WML Engine
- `[heal_unit]` no longer sets the `heal_amount` variable.
- `[heal_unit]` now supports a `variable=` key.
- Added an `id` field to the items of the arrays generated by `[harm_unit]`.
Miscellaneous and Bug Fixes
- Fixed: keyboard input during the loading screen intermittently caused a crash (issue #4447)
- AI: fixed custom synced commands not changing the game state
- Messenger MAI: fixed bug of own units sometimes blocking the path to a waypoint for the messenger
- Correct unit display adjustments on certain tiles when at zoom level other than 100% (issue #5974)
- Fix the engine exiting immediately due to a corrupt .mo file (issue #6194)
- Removed support for writing BMP screenshots (PR #6206).
- Password storage was fixed to work with multiple accounts (PR #6290)
- wmllint now automatically removes {MAGENTA_IS_THE_TEAM_COLOR}.
- wmllint, wmlscope and wmlindent now support the command line `--version` flag, which reports the current version of Wesnoth (issue #6346).
- wmllint is now capable of handling unit levels and types when checking recruitment patterns.
1.17.0
Campaigns
- A Tale of Two Brothers
- The mercenary will now spawn in a less sudden way (issue #6183)
- Delfadors Memoirs
- S07: Clarified objectives (issue #5608) and remove End Turn being required to trigger victory (issue #6173)
- Descent into Darkness
- S08: Prevent possibility of Darken Volk advancing to Lich (issue #6351)
- Heir to the Throne
- S05b: Temples given an aged appearance to match ancient temples description (issue #5576)
- Liberty
- S06: Enforce failure condition for allied team (issue #6019)
- Northern Rebirth
- Give Eryssas side a consistent team color (issue #5375)
- Sceptre of Fire
- S04: Mining objectives are much clearer now (issue #6154)
- Secret of the Ancients
- S06: Ardonna should no longer mistake hostile bats as my pet
- The Rise of Wesnoth
- S08: The appearance of Naga is now smoother (issue #6140)
- S19: The trolls gold is automatically collected upon victory if not already obtained (issue #6141)
- S19: Avoid units spawning over chasms
- Remove time-runs-out lose condition for final scenario (issue #6109)
- Under the Burning Suns
- Avoid a few possibilities where the Dust Devil could speak (issue #4892)
- Avoid dehydration status icon persisting into the next scenario (issue #5687)
- Correct Travelers Ring description (issue #6043) and add an icon overlay (issue #6126)
- S02: Pinnacle rock is now shown during dialogue (issue #6125)
- S05: Avoid village just taken by the player being re-assigned to the enemy (issue #6187)
- S06b:
- Account for non-elvish units encountering Dwarf Sergeant (issue #6196)
- Grog will not die as quick now (issue #6196 & #6197)
- Hermit dialogue cannot be accidentally skipped now (issue #6196)
- Fixed bug where tentacles would not spawn (issue #6196)
- Fast units cannot get stuck on the wall now (issue #6196)
- Camera now moves to where the charges are blown up (issue #6197)
- Fixed weird scout AI behaviour (issue #6196)
- S09: Rebels joining Kalehs side are now loyal (issue #6229 and #6365)
- The last unit killed to trigger certain events should no longer linger during those events (issue #6341)
- The Dark Assassins race is not revealed until uncloaked (issue #6213)
- The Dust Devils XP bar is now blue (issue #6212)
- Winds of Fate:
- New Drakes-centric Campaign added to mainline
- World Conquest:
- Fixed for Winged Scepter not giving the correct defence values
- Corrected the attack icon of ice bow from a lightning bolt to an iceball
Editor
- Avoid rare crash situation after editing scenarios (issue #5883)
Lua API
- Fixed an error in `gui.get_user_choice()` and added support for the current DescriptionWML syntax (PR #6247)
Translations
- Added translations: Spanish (Latin American)
- Updated translations: British English, Bulgarian, Chinese (Simplified), Chinese (Traditional), Czech, Dutch, Finnish, French, Indonesian, Italian, Japanese, Polish, Portuguese (Brazil), Russian, Scottish Gaelic, Spanish, Turkish.
- gettext plural forms now have caret prefixes stripped as well (PR #6094).
Units
- Added attack image for the Bone Knights trample
User interface
- Added a VSync option (issue #5018). This defaults to enabled and is available in Preferences -> Display only with SDL 2.0.17 and later as older versions do not support VSync with the software renderer.
- The names of the abilities used as specials appear in the attack prediction window with specials weapons
- Added a prompt to allow migrating settings and redownloading add-ons used in a previous version of Wesnoth when starting a new versions for the first time.
- Ban expiry intervals in the MP UI now only mention the most significant time unit (e.g. "3 minutes" instead of "3 minutes, and 20 seconds") (PR #6097).
- Steam cloud file is no longer listed in the Load Game dialog.
- Redefine green text in dialogs and tool-tips so they are no longer too dark with recent Pango versions (issue #4348)
- Gave the main menu's Language button a label again, now displaying the current language.
- Tweaked margins around the main menu's bottom row.
- Difficulty no longer displayed in the Load Game dialog when it is not relevant to a save file (issue #5321)
WML Engine
- `[heal_unit]` no longer sets the `heal_amount` variable.
- `[heal_unit]` now supports a `variable=` key.
- Added an `id` field to the items of the arrays generated by `[harm_unit]`.
Miscellaneous and Bug Fixes
- Fixed: keyboard input during the loading screen intermittently caused a crash (issue #4447)
- AI: fixed custom synced commands not changing the game state
- Messenger MAI: fixed bug of own units sometimes blocking the path to a waypoint for the messenger
- Correct unit display adjustments on certain tiles when at zoom level other than 100% (issue #5974)
- Fix the engine exiting immediately due to a corrupt .mo file (issue #6194)
- Removed support for writing BMP screenshots (PR #6206).
- Password storage was fixed to work with multiple accounts (PR #6290)
- wmllint now automatically removes {MAGENTA_IS_THE_TEAM_COLOR}.
- wmllint, wmlscope and wmlindent now support the command line `--version` flag, which reports the current version of Wesnoth (issue #6346).
- wmllint is now capable of handling unit levels and types when checking recruitment patterns.
Add-ons server
- Fixed `core=` attribute in `_server.pbl` being completely ignored (issue #5664).
Campaigns
- Tutorial
- Use a portrait on the Campaigns menu.
- Sceptre of Fire
- S02p5: Added defeat condition if Alanin dies.
Multiplayer
- Increased the limits of timer values (up to 10 minutes turn bonus, 50 minutes reservoir).
- Re-added HTML character escaping.
Lua API
- Fixed an error in `gui.get_user_choice()` (part of PR #6247).
- Fixed an error in handling `x,y` locations (issue #6231).
Packaging
- Fixed missing dependency on boost-math in the vcpkg config.
- Made `get_dlls.py` install libraries for `wesnothd` too.
Translations
- Updated translations: Dutch, Italian, Portuguese (Brazil).
- Added po hints for time format strings.
User interface
- Made the Add-ons Manager search box less unwieldy on very small resolutions.
- Made listbox header toggle buttons taller.
- Fixed a crash when assigning players to different teams while creating an MP game.
- Fixed a crash when using nickname tab autocompletion in the MP lobby.
WML Engine
- Fixed `[item]x,y=` at scenario scope (issue #6231).
Miscellaneous and Bug Fixes
- Fixed missing tooltips on the side-bar (hover over the unit type to see a description, etc) (issues #6007 and #6096).
- Fixed several issues in the multiplayer server about TLS connections, error-handling and disconnections.
- Added `.DS_Store` and `Thumbs.db` to wmltool's list of files to ignore.
After more than three years of development and thousands of commits made by dozens of contributors, the Battle for Wesnoth development team is proud to announce the availability of version 1.16.0 on Windows, macOS, and Linux! This release contains improvements to many different parts of the game, from new units and art, a completely overhauled and rebalanced Dunefolk faction, reworked campaigns, new multiplayer content, additional functionality for add-on authors, and much more. A full list of changes and new features added since version 1.14 can be found in the release notes for this series. Contributors Wesnoth 1.16.0 was made possible by the contributions of many, many people all over the world. In no particular order, we would like to thank: 123chess456, Aaron Winter, Alexander van Gessel, Alexey Sokolov, Allefant, Andras Szell, Andrey Bienkowski, Andrius tikonas, Anna Henningsen, Artem226, Artem Khrapov, Astrid Halberkamp, beetlenaut, blaf, Byteron, catagent101, Celtic Minstrel, Charles Dang, Choicerer, Chris Nasser, clockback, CrawlCycle, David Carlier, David white, Descacharrado, DisherProject, doofus-01, Earth-Cake, Edward Chernenko, elias-pschernig, Elvish_Hunter, equal-l2, Eric Gallager, Fernando Carmona Varo, ForPeace-Wesnoth, fraaans, FranPrin, fsd, galegosimpatico, Galen Brooks, George, gfgtdf, ghype, Glen Whitney, Gregory A Lundberg, Grzegorz Halat, Gunter Labes, Heiko Becker, Hejnewar, hexagonrecursion, Hironori Fujimoto, IceTyp, Iris Morelle, IskarJarak, joeylmaalouf, Joseph Gelfand, jostephd, Jyrki Vesterinen, kabachuha, Kevin Yap, Konrad2, krazyfencer, laikh, Lari Nieminen, larry_the_cow, Leonardo, lilinitsy, Lipka Boldizsr, ln-zookeeper, loonycyborg, Lordbob, Lovens Weche, Lukas Jox, ukasz Hryniuk, lundberg, Martin Hrub, Matthias Krger, mattsc, Maximilian Fricke, Micha Janiszewski, Michal ejdl, MrTitainin, mstrebel, nemaara, newfrenchy83, Niall Burton, Nils Kneuper, Nobun, Piotr Makarewicz, Praveen Batra, ProditorMagnus, Reuben Rakete, Rikard Falkeborn, rrigby, Ryan Frame, Sean Yeh, Sergey Lavrenyuk, Sergey Popov, Severin Glckner, sigurdfdragon, Sofartin, Steve Cotton, Tahsin Jahin Khalid, Thom Diment, Toom, Vasya, Victor Sergienko, ville, Vlad Drozdov, walodar, Wedge009, Whiskeyjack, Zaal Tonia, our many current and past translators, artists, musicians, and anyone we might have missed.
With the upcoming release of 1.16 on October 24th, Steam players who are on the default branch (aka what you're using if you haven't chosen 1.15.x in the Betas) as well as itch.io players who are on the Stable channel will be automatically upgraded from 1.14.17 to 1.16.0. While 1.16 will have numerous improvements over 1.14, there are also some things that are incompatible between these two versions as well as add-ons that may exist for 1.14 but not for 1.16. As such, for Windows and macOS players who wish to remain on 1.14.17 for the time being, standalone downloads are available on SourceForge. For players who wish to continue using 1.14.17 without needing to download the standalone version from SourceForge, or if you're a Steam Linux player, see below for instructions on how to do this. Steam Go into your Steam library and right click Battle for Wesnoth. Click the "Properties..." option. Select the "BETAS" section. In the dropdown under "Select the beta you would like to opt into:" select the option "1.14.x - 1.14 old stable".
Campaigns
- Delfadors Memoirs
- S07: Clarified objectives (issue #5608)
- Northern Rebirth
- Give Eryssas side a consistent team color (issue #5375)
- The Rise of Wesnoth
- Remove time-runs-out lose condition for final scenario (issue #6109)
- Under the Burning Suns
- Avoid a few possibilities where the Dust Devil could speak (issue #4892)
- Avoid dehydration status icon persisting into the next scenario (issue #5687)
- Correct Travelers Ring description (issue #6043)
Editor
- Avoid rare crash situation after editing scenarios (issue #5883)
Translations
- Updated translations: British English, Bulgarian, Czech, French, Italian, Portuguese (Brazil), Russian, Spanish.
- gettext plural forms now have caret prefixes stripped as well (PR #6094).
User interface
- Steam cloud file is no longer listed in the Load Game dialog.
- Redefine green text in dialogs and tool-tips so they are no longer too dark with recent Pango versions (issue #4348)
- Gave the main menu's Language button a label again, now displaying the current language.
- Tweaked margins around the main menu's bottom row.
- Difficulty no longer displayed in the Load Game dialog when it is not relevant to a save file (issue #5321)
Miscellaneous and Bug Fixes
- Correct unit display adjustments on certain tiles when at zoom level other than 100% (issue #5974)
Campaigns
- World Conquest is re-enabled.
Translations
- Updated translations: British English, Polish
Miscellaneous and Bug Fixes
- Messenger MAI: fixed bug of own units sometimes blocking the path to a waypoint for the messenger
- A bug that would corrupt WML sent to the multiplayer and add-ons server was fixed.
Campaigns
- Liberty
- S06: Enforce failure condition for allied team (issue #6019)
- The South Guard
- S8b: Reduced difficulty
- Tutorial
- S01: Don't let the first Quintain chase the player to a village (PR #5968)
- S01: Synchronise the choice of character dialog, so that replays don't get OOS (issue #5926)
- S01: Fix some glitches on HDPI displays (PR #6005)
- Secrets of the Ancients
- Synchronise the walking corpse recruitment dialog, so that replays don't get OOS (issue #5334)
- Under the Burning Suns
- S09: Reveal the boss of the scenario at the end of part 1 (issue #5540)
- World Conquest
- Add campaign icons, campaign image and credits (PR #5958)
- Update to new mushroom terrain from the deprecated mushroom terrain (issue #5135, PR #5960)
Multiplayer
- If an add-on needs to be installed on all players' devices but doesn't specify a min version, assume it needs the latest (issue #5004)
Terrain
- Fix transition between snowy mountains and castles (issue #6016)
Translations
- Updated translations: British English, Chinese (Traditional), Czech, Finnish, French, Indonesian, Italian, Polish, Portuguese (Brazil), Russian, Turkish
Units
- Added and improved Naga animations (issue #5980, PR #6012)
- Added Troll defense animations (PR #5964)
User interface
- The names of the abilities used as specials appear in the attack prediction window with specials weapons
- In the Load Game dialog, list directories from previous versions in decending order
- Refined design of the Faction Select screen
- Made the campaign selection on bigger on HDPI screens (PR #6013)
Miscellaneous and Bug Fixes
- Added a timeout when connecting to the wesnothd server
- Improved logging of deprecation messages, fixing duplication and missing timestamps (issue #5942)
- Added `[era]` attributes to the schema
- Added to wmllint an automatic update of four terrain-graphics macros
- Removed wmllint's check for spaces in e-mail addresses
- Standardised the date line of copyright statements, and updated them to 2021
The most visible change added with this release is that when a major version is newly installed Wesnoth will migrate user preferences and attempt to redownload add-ons from its new add-ons server.
Translations
- Updated translations: British English, Bulgarian, Chinese (Traditional), Czech, Italian, Portuguese (Brazil), Russian, Spanish, Turkish
User interface
- Added a prompt to allow migrating settings and redownloading add-ons used in a previous version of Wesnoth when starting a new versions for the first time.
Miscellaneous and Bug Fixes
- Fixed: keyboard input during the loading screen intermittently caused a crash (issue #4447)
- AI: fixed custom synced commands not changing the game state
For players, this is a great chance to take a look at what's changed and been added since 1.14, and there is a lot! A variety of new units have been added, the Dunefolk faction has been entirely rebalanced along with many other units, unit sprites have been updated and animations added, Descent Into Darkness has been overhauled and many other campaigns have also been significantly improved, the mushroom terrain has been revamped (which was surprisingly controversial), the Plan Unit Advancement modification has been mainlined, Isar's Cross now has an amazing background, and many more besides. For content creators, this is the start of our feature freeze, which means that you can start porting your add-ons to what will eventually become 1.16 without worrying whether each release will break your add-on. Of particular note is that uploading and downloading add-ons are now done incrementally - meaning only things that have changed between versions are uploaded or downloaded - so uploading and downloading add-ons should now be a lot faster. Additionally, you can provide one or more [translation] tags in your _server.pbl to provide a translation of your add-on's title and description into languages other than English. However, there have also been a significant number of API changes, which have resulted in a large chunk of lua especially being marked as deprecated. This is intended as a one time occurrence to clean up and reorganize Wesnoth's APIs; the goal and intention is to never repeat this or anything close to it in any future development series. And lastly, please report any bugs you run into! With new features come new bugs, and just because we created these features doesn't mean we already know every way they can stop working.
Add-ons client
- Fixed: using the versions drop-down in small-screen mode returned to the title screen (issue #5810)
- Fixed: keyboard input in small-screen mode returned to the title screen (part of issue #3059)
Campaigns
- A Tale of Two Brothers
- S02: Dialog revisions.
- Sceptre of Fire
- Revisions to the last two scenarios.
- Tutorial
- S02: Mention the acceleration factor preference.
Lua API
- Pathfinding functions are now in a new wesnoth.paths module.
- Pathfinding in map generation now takes an options table as the third argument.
- New sync module that contains functions for multiplayer synchronization
- In particular, wesnoth.synchronize_choice is now wesnoth.sync.evaluate_single
- allow_end_turn and end_turn moved to the wesnoth.interface module
- wesnoth.message is now wesnoth.interface.add_chat_message
- Shroud and fog control are now in the wesnoth.sides module
- Shroud data strings and the special string "all" are no longer supported by place_shroud - only a list of locations is supported
- wesnoth.map.parse_bitmap transforms a shroud data string into a list of locations
- wesnoth.map.make_bitmap builds a shroud data string from a list of locations
- There are now two different ways of altering shroud: place_shroud merges with existing shroud, while override_shroud replaces the entire shroud with the new value.
- New schedule module for working with schedules and time areas
- wesnoth.map.get_time_area now returns the area's schedule object
- The global scenario schedule is available as wesnoth.current.schedule
- wesnoth.get_time_of_day is split into wesnoth.schedule.get_time_of_day (ignoring illumination) and wesnoth.get_illumination (which considers illumination). Both functions now take the location as the first argument.
- wesnoth.get_max_liminal_bonus() is now wesnoth.current.schedule.liminal_bonus
- wesnoth.replace_schedule is now wesnoth.schedule.replace
- wesnoth.end_level() and wesnoth.get_end_level_data() are now removed - instead, there's an end_level_data field in wesnoth.scenario.that serves both purposes.
- wesnoth.get_traits() is now wesnoth.game_config.global_traits
- wesnoth.teleport moved to the units module
Multiplayer
- Added Isle of Mists, a new single player or coop survival scenario.
Networking
- Added support for encrypting connection using TLS to multiplayer/addon client/server
- Moved password hashing code from client to server, relying on TLS to avoid sending cleartext passwords
Packaging
Terrain
- Added some great tree variations
- Added 'icy cobbles' (terrain code `Rra`) - mostly useful for the transitions
Translations
- Updated translations: British English, Chinese (Traditional), Czech, Indonesian, Italian, Japanese, Scottish Gaelic, Slovak, Spanish
Units
- Added missing Seahorse graphics
- Revised Jinn (unit config and graphics)
- Fire Wraith added
- added LordBob's Jinn, Fire Guardian, and Fire Wraith portraits
- Moved Naga guardian line from UtBS to core, and made some revisions
- Dune Apothecary experience needed to level up changed from 100 to 65
- Dune Captain experience needed to level up changed from 86 to 75
- Dune Herbalist cost changed form 15 to 14
- Dune Horse Archer experience needed to level up changed form 70 to 65
- Naga Sicarius hp changed form 55 to 53 and melee damage changed form 9 to 6, new special "deflect" added to melee attack
- Fire Guardian can now level into Fire Wraith, experience needed to level up for Fire Guardian changed from 50 to 29
- Revised statistics of all animal horses, Bay Horse can now level into Great Horse
Wesnoth Formula Language
- The use of "side" on units and "owner" on terrain objects is now deprecated. Instead, you should use "side_number" or "owner_side", respectively. The old key returns 0 for side 1 and so on, so the new key is preferred.
- A unit object now has a "terrain" key that returns the terrain object the unit is standing on.
- Add new functions tod_bonus() and base_tod_bonus() to get the bonus on a specific location
WML Engine
- add 'unslowable' and 'unpetrifiable' status to immune to slow or petrifies
- Schema validation now checks whether string values are translatable or not, according to what the schema specifies.
- Fix schema validation rejecting Lua AI goals
- Unit special notes are now read directly from weapon specials, abilities, and a few other places, meaning the `[special_note]` tag is usually not required in `[unit]` or `[unit_type]`.
- A warning is now displayed when the next scenario is unknown (issue #5530).
- Changed the default duration for `[print]` to 5000 milliseconds, and added support for `duration=unlimited` (PR #5868).
Miscellaneous and Bug Fixes
- The unit description tooltip in the sidebar now includes the text from `[special_note]`s.
- Added a collection of item images
- AI: fixed crash when using attacks aspect with invalidate_on_gamestate_change=no
- AI: fixed crash when using custom_synced_commands
- Micro AIs: fixed unit variables getting lost when continuing from replay
- Fixed AI state initialization problem after reloading
Add-ons client
- The details panel now shows the list of tags in each add-on.
- Added a filter based on tags.
Lua API
- Added `pango_color` to the `wesnoth.colors` table, for easy use in formatted text.
- Add new function `filesystem.resolve_asset` to convert `[binary_path]` relative paths to data-relative paths.
- Add new function `filesystem.have_asset` which can determine if an image or sound exists.
- `wesnoth.have_file`, `wesnoth.read_file`, `wesnoth.image_size` moved to new `filesystem` library
- Add a more advanced way of manipulating version strings via `wesnoth.version` constructor function.
- Add a `wesnoth.scenario` data module that consolidates everything there is to know about the current scenario. Much of this information was previously available through `wesnoth.game_config`, but there are some new details too.
- Fixed a regression introduced in 1.15.5 causing GUI2 widgets set to a hidden state to remain visible but not able to be interacted with.
- Fixed a regression introduced in 1.15.5 causing GUI2 listboxes to break when cleared and re-filled under certain circumstances.
Packaging
- Increased minimum required version of SDL to 2.0.8 (PR #5736).
Translations
- Updated translations: British English, Czech, Dutch, Italian, Russian.
Units
- Horses added
- Seahorse added
- Zombie horse variation added
- Update piglet/boar graphics
User interface
- The multiplayer "turns over" dialog now uses each team's colors when showing teams' names.
WML Engine
- Modify implementation of overwrite_specials attribute for replace yes/no parameter by none/one_side/both_sides and select abilities used like weapons and specials who must be overwrited(owned by fighter where special applied or both)
- Add a `ability_id_active` attribute to `[filter]`
- `[terrain_mask]` now accepts `mask_file` as an alternative to an inline mask. The file is loaded from the same place as `map_file` in the `[scenario]` tag (ie, a maps/ subdirectory of your binary path). Anyone who prefers to keep masks separate from regular maps is free to make a subdirectory for their masks (or just keep all their masks inline).
- `[effect]apply_to=movement` now always affects vision too, except when given the `apply_to_vision=no` attribute
Miscellaneous and Bug Fixes
- More optimization in the UI drawing code, fixes the crash displaying the full credits (issue #5043).
- Made GUI.pyw compatible with Python 3.9 (issue #5719).
- Removed workarounds for bugs affecting older SDL 2.0 versions, including an extra copy of the game screen made during gamemap scrolling (PR #5736).
- FPS values calculated when the :fps or :benchmark are now written to a file which can then be used to track FPS values over time.
- Removed old image optimisation scripts, as there's a rewrite in Python.
Add-ons client
- When uploading or deleting an add-on, the game will now prompt for the required password if it is not present in the `_server.pbl` file.
AI
- Improved AI decisions about whether an attack with poison is better than one with higher direct damage.
- Added options to the Patrol Micro AI on whether to notice invisible units, and on attack range.
- Added a `[filter]` option to the Swarm Micro AI.
- Replaced several uses of Formula AIs with Micro AIs, and removed Formula AIs from demo scenarios.
- Removed experimental MP dev Formula AIs.
- Fixed a crash in the Lurker Formula AI.
Campaigns
- Descent into Darkness
- Buffed Malin.
- Eastern Invasion
- Dialogue changes in S07b.
- Legend of Wesmere
- S16: Replaced the Patrol Formula AI with the Patrol Micro AI.
- Secrets of the Ancients
- Reimplemented the zombie recruitment UI.
- The Rise of Wesnoth
- Balance changes (issue #5603).
- The South Guard
- Fix the new ally's upkeep when choosing the bandit branch.
- Tutorial
- Reimplemented the character-choice UI.
- Under the Burning Suns
- In S01, fixed one of the mystics spawning in the lake.
Lua API
- Fix issues with the wesnoth.map module.
Multiplayer
- Dark Forecast
- Difficulty rebalanced so that two-player-mode is hard rather than impossible (PR #5673).
- The weather now changes on side 1's turn instead of side 3's turn (issue #5653).
- World Conquest
- Many bugs have been fixed, however WC is still hidden while more bugs are fixed.
- Converted GUI2 dialogs to WML.
- Fixed an error in the destruction mechanic.
Packaging
- Removed the obsolete FindSDL2_ttf cmake module.
Terrain
- Improved transition between human castle ruins and sunken ruins (issue #5611).
Translations
- Updated translations: Chinese (Traditional), Czech, Italian.
Units
- New rock scorpion monster and scorpion zombie variation.
- Rename tusker/gorer references to boars and piglets, to avoid stepping on existing UMC.
- Dune Blademaster gold cost changed from 52 to 57.
- Dune Captain alignment changed from liminal to lawful.
- Dune Cataphract gold cost changed from 61 to 62.
- Dune Firetrooper gold cost changed from 50 to 41.
- Dune Harrier gold cost changed from 46 to 47.
- Dune Luminary gold cost changed from 53 to 38.
- Dune Maruder gold cost changed from 52 to 60.
- Dune Sky Hunter gold cost changed from 47 to 51.
- Dune Spearmaster gold cost changed from 51 to 57.
- Dune Wayfarer gold cost changed from 52 to 55.
- Dune Windbolt gold cost changed from 50 to 49.
- Dune Warmaster gold cost changed from 56 to 57, hp changed from 57 to 59, alignment changed from liminal to lawful.
- Naga Ophidian gold cost changed from 24 to 22, melee damage changed from 7 to 6, ranged damage changed from 10 to 12.
- Naga Ringcaster gold cost changed from 24 to 22.
- Naga Sicarus gold cost changed from 48 to 46, melee damage changed from 10 to 9, ranged damage changed from 12 to 13.
- Naga Zephyr gold cost changed from 50 to 46.
- Wose Sapling gold cost changed from 10 to 11.
- Wose Shaman gold cost changed from 40 to 27, movement points changed from 3 to 4, melee damage changed from 9 to 12, ranged damage changed from 10 to 11, hp changed from 50 to 56.
- Horned Scarab gold cost changed from 12 to 11.
- Fixed the Walking Corpses of some river creatures having poor movement in deep water (issue #5701).
- New descriptions for the Fire Ant, Roc and Sand Scuttler.
- Fixed the Giant Scorpion having an empty variation name.
User interface
- Improved the attack dialog's recommendation about whether an attack with poison is better than one with higher direct damage.
- Added logs folder path to the Game Version dialog on Windows.
- Added built-in Lua engine version to the Game Version dialog and `--report`.
- Made Accelerated Speed toggle announcement not stackable over itself or other announcements.
- Minor adjustments to the sidebar's minimap area in the default game theme to reclaim empty and uneven space back. Note that this WILL break custom WML themes that use the same sidebar graphics as the default theme.
- Minor adjustment to the placement of numerals on the debug clock.
- Players now receive an error message when attempting to save games using illegal file names (issue #5679).
- Fixed text labels containing only a single link becoming empty (issue #5625).
- Separated floating labels' duration from the speed of their eventual fade-out.
- Fixed font family leakage from GUI2 canvases to GUI1 elements such as the in-game chat overlay (issue #5712).
WML Engine
- In development builds, deprecation warnings are now shown in-game by default.
- Conditional WML's `[variable]` tag now expects exactly one comparison, and will warn if given none or multiple tests.
- `[store_reachable_locations]range=vision` now calculates vision, instead of using movement costs and max movement points (issue #4179).
Miscellaneous and Bug Fixes
- Fixed units with max movement set to zero being given one max movement point by `[unstore_unit]` or when loading a saved game (issue #5638).
- Fixed an intermittent crash on the loading screen (issue #5629).
- wmlunits (units.wesnoth.org) no longer incorrectly assumes that units with movement costs equal to their maximum movement can't move into the affected terrains.
- Fixed a bug where log domains' severity could accidentally be reduced.
- Changed the verbosity and error-handling of the `run_wml_tests` script.
- Made `run_wml_tests` automatically skip tests which need strict mode when running without strict mode.
- Made optimizations in the UI drawing code, these shouldn't have visible effects (PR #5697).
- Optimized the command-line `wesnoth_addon_manager` tool.
Patch 1.14.16
AI
- Experimental AI: fixed a bug identifying hexes next to healers as healing locations
- Goto Micro AI:
- Fixed bug when the avoid_enemies parameter is set to very small values
- Fixed rare bug with blocked paths when ignoring enemies
- Protect Unit Micro AI: fixed bug when a unit is not on the AI side
- Multipack Wolves Micro AI: fixed error when a wolf is fully surrounded
Campaigns
- Dead Water:
- Fix some characters names, which hadnt been marked as translatable.
- Son of the Black-Eye:
- S09: Name the enemy team.
- The South Guard:
- S06b: Fix some enemies ambush abilities (issue #5383).
Editor
- Re-enabled topics for the terrain editor in the in-game help browser
- Added help topics for the scenario editors tools
- Added documentation about the files written by the editor
Translations
- Updated translations: British English, Catalan, Chinese (Traditional), French, Portuguese (Brazil), Spanish, Turkish
User interface
- Fixed color fringing issues with ClearType on Windows.
- Reduced font sizes for the unit HP/XP/MP/Vision/Defense displays on the sidebar at small resolutions to avoid overlaps (issue #5575).
- Rearranged the unit XP and vision displays on the sidebar to avoid running out of room for the XP display (issue #5575).
- Reduced font size for the ToD counter on the sidebar to avoid it being ellipsized too often.
- Gave the turn timer display the same icon as the system clock display.
- Anchored the Observers icon to the sidebar again in a way that does not allow it to overlap into it (issue #5575).
- Fixed the turn timer/system clock display on the top bar incorrectly using a larger font size at small resolutions.
- Rearranged the Defense display label on the sidebar slightly. It remains invisible in Wesnoth 1.14, however.
Miscellaneous and Bug Fixes
- Added support to wmlxgettext for double-quote characters in translatable raw strings
- Fixed an error message and the AI leader potentially not moving when it cannot reach a keep because it's occupied by an allied unit
- Fixed display zoom not being taken into account when using the `x`, `y`, `directional_x` and `directional_y` attributes in unit animations.
- Fixed `[terrain_defaults]` and `[resistance_defaults]` (issue #5308).
- Fixed an attack prediction assert that happened in rare combinations of the defender slowing and the attacker potentially leveling up, and a specific combination of standard and Monte Carlo attack evaluations (issues #5533 and #5002)
Patch 1.15.11
AI
- Improved the retreat_injured candidate action:
- Made the CA independent of the caution aspect, which could previously cause almost healthy units to retreat
- Added two new aspects for customizing the retreat behavior: retreat_factor and retreat_enemy_weight
- In the default setting, only healing locations are considered as retreat locations and enemy threats are not the dominant consideration any more, which means units will not retreat to the edge of the map
- Fixed a bug identifying hexes next to healers as healing locations
- Miscellaneous other improvements to the internal rating function
- Messenger Micro AI: added [avoid] tag functionality. In the process, two of the ai_helper functions also had this functionality added: move_unit_out_of_way() and get_closest_location()
- Goto Micro AI:
- Added optional remove_movement parameter (issue #5580)
- Fixed how the avoid_map and avoid_enemies parameters interact
- Fixed rare bug with blocked paths when ignoring enemies
- Fixed bug when the avoid_enemies parameter is set to very small values
- Protect Unit Micro AI: fixed bug when a unit is not on the AI side
- Multipack Wolves Micro AI: fixed error when a wolf is fully surrounded
Campaigns
- Delfador's Memoirs
- Adjust campaign difficulty
- Eastern Invasion
- Reveal shroud in S2 and S10, to be fairer the first time a player sees those scenarios
- Balance the carryover gold on the branching campaign paths between S06 and S09
- Various small fixes
- Liberty
- Revise dialogue
- Reduce difficulty
- Sceptre of Fire
- Adjust campaign difficulty
- Secrets of the Ancients
- Adjust campaign difficulty
- Son of the Black Eye
- Adjust campaign difficulty
- The South Guard
- Reduce campaign difficulty
- Tutorial:
- Disabled end credits (issue #5543).
- Under the Burning Suns:
- Adjust campaign difficulty
Translations
- Updated translations: British English, Chinese (Traditional), Czech, Italian
Units
- Beast-rider Walking Corpse variation (for UtBS Quenoth Tauroch line, but generally available)
User interface
- Fixed color fringing issues with ClearType on Windows.
- Improved the Load dialog when there are no saved games for the current version, and also when there are corrupted files.
- Re-added the pop-up when there are no saved games at all (issue #5517).
- Fixed resource leak in the Pango text rendering pipeline when using the characters_per_line constraint.
- Make the warning about loading saves from old versions much clearer.
- Made legacy GUI1 scrollbars match regular GUI2 scrollbars.
- Reduced font sizes for the unit HP/XP/MP/Vision/Defense displays on the sidebar at small resolutions to avoid overlaps (issue #5575).
- Rearranged the unit XP and vision displays on the sidebar to avoid running out of room for the XP display (issue #5575).
- Reduced font size for the ToD counter on the sidebar to avoid it being ellipsized too often.
- Gave the turn timer display the same icon as the system clock display.
- Anchored the Observers icon to the sidebar again in a way that does not allow it to overlap into it (issue #5575).
- Fixed the turn timer/system clock display on the top bar incorrectly using a larger font size at small resolutions.
- Made the Defense display label on the sidebar visible (a side-effect of replacing SDL_ttf) and rearranged it slightly.
- Set the correct default text color for in-game UI elements instead of #ffffff white for consistency with other UI elements.
- Increased font sizes in Help and some legacy UI elements.
- Minor clean-up of game menus display.
- Restyled dropdown menu buttons to look like buttons rather than textboxes.
- Fixed missing display resolution ratios in Preferences -> Display (regression introduced in 1.15.10).
WML Engine
- Standard Location Filters now support gives_income=yes|no to make it simpler to match villages regardless of owner
- Fixed ThemeWML `[label] font_rgb=` generating text elements with broken UTF-8 sequences.
- abilities used like weapon can call a [teaching_anim] instead of [leading_anim] now.
- The campaign end screen is no longer displayed when `[campaign]/[endlevel] end_credits=` is set to a false value.
- Fixed `end_credits=` in `[campaign]` not having any effect.
Miscellaneous and Bug Fixes
- Added support for 1.14s tag names in `[terrain_defaults]` (issue #5308).
- Replaced legacy SDL_ttf/FriBidi-based font rendering used in old GUI1 code paths with Pango.
- Fixed an attack prediction assert that happened in rare combinations of the defender slowing and the attacker potentially leveling up, and a specific combination of standard and Monte Carlo attack evaluations (issues #5533 and #5002)
- Fixed test scenarios in add-ons not working
Add-ons server
- Fixed undefined behavior when servicing requests to downgrade add-ons.
Campaigns
- Added custom campaign menu backgrounds for several mainline campaigns.
- The Rise of Wesnoth
- Adjust campaign difficulty
Multiplayer
- The Delay Advancements modification has been removed in favor of adding the Plan Unit Advance modification to mainline. Enabling this modification allows each player to choose what their units will level up into in case the advancement happens on an enemy player's turn in an online multiplayer game.
- Unit advancement that happens on an enemy's turn in online multiplayer games are no longer randomized. Instead, the first advancement listed for the unit is always used.
- Disabled World Conquest due to an increasing number of reported bugs and it currently lacking a maintainer. It may be removed entirely in a future release.
Lua API
- Upgrade to Lua 5.4.2.
- Added the wesnoth.as_text(...) function as a way to more easily view the contents of a lua table. This is intended as a debugging aid and nothing more.
- Deprecation warnings can now be viewed in the in-game Lua console, together with a stack trace to the first location that triggered them.
- There is now a --strict-lua command-line option that disables most deprecated Lua functions; this makes the use of deprecated APIs an error instead of a warning.
Translations
- Updated translations: British English, Catalan, Czech, French, Portuguese (Brazil), Turkish
Units
- update footpad sprite
- north-facing frames for dunefolk skirmisher, loyalist bowman, and troll whelp
User interface
- Added a "disengaged" orb, shown instead of the partially-moved orb for units that can move but can't attack.
- Added information about the build's (not runtime) target CPU architecture to the game version info dialog and --report.
- Added terminal-style command history browsing with up-down keys for in-game consoles used by debug mode, ai and search floating textboxes.
- Made the preferences dialog larger on HDPI screens; this fixes a usability issue with HDPI font sizes (issue #5185).
WML Engine
- Extent 'special_id_active' and 'special_type_active' to abilities used like weapon and to [leadership] abilities.
- abilities used like weapon can call [leading_anim] now.
Miscellaneous and Bug Fixes
- Fixed display zoom not being taken into account when using the `x`, `y`, `directional_x` and `directional_y` attributes in unit animations (issue #5508).
- Fixed a warning message and the AI leader potentially not moving when it cannot reach a keep because it's occupied by an allied unit
Just in time for Christmas, we're releasing two patches, one regular and one to the beta channel! The former includes mostly small changes and bugfixes, while the latter includes more significant developments. Chief among those is Apple Silicon support! Note this is only available on the beta channel release, and (especially given how new the platform is), we would appreciate reports of any issues Mac players have with this new patch. Happy (late) Hanukkah, and Merry (early) Christmas! [hr][/hr]
Patch 1.14.15
Add-ons client
- Fix potential crashes when working with installed add-ons that have a corrupted _info.cfg file.
Campaigns
- Descent into Darkness:
- S11: fix low probability case of enemy being unreachable
- S11: recall ghosts if available and ensure the player gets one level 2 ghost.
- Eastern Invasion:
- S03: fix the initial keep being blocked at the start
Translations
- Updated translations: British English, Catalan, Czech, French, German, Italian, Japanese, Polish, Portuguese (Brazil), Russian, Turkish
User interface
- Fixed formatting of hyperlinks when the same URL appears more than once in a block of text
Miscellaneous and Bug Fixes
- Fixed a rare issue on Windows that could result in wesnoth.exe sticking around waiting for console input after encountering an error despite not being launched with the `--wconsole` option.
- Removed documentation for network proxy-related command line options previously removed in version 1.13.1 along with libana.
Development Patch - 1.15.8
Add-ons client
- Fix potential crashes when working with installed add-ons that have a corrupted _info.cfg file.
- Improved license information prompt for uploads.
Add-ons server
- Fixed inability to write files (including the server configuration file) on Windows.
- Dropped plain text passphrase migration, unused in production since version 1.12.7 and 1.13.0 (issue #5080).
- Uploading add-ons with versions not greater than the latest uploaded version is no longer allowed (issue #5079).
- Implemented optional server information query used by connecting clients.
Campaigns
- Dead Water
- Reduce campaign difficulty
- Eastern Invasion:
- Tweak campaign difficulty
- S03: fix the initial keep being blocked at the start
- Heir to the Throne
- Tweak campaign difficulty
- The Hammer of Thursagan
- Reduce campaign difficulty
- The South Guard
- Reduce campaign difficulty
Multiplayer
- Added `/roll N` command to multiplayer games and game lobbies which produces a publicly visible random integer number ranged from 1 to N inclusively (issue #5221, PR #5326).
Packaging
- SDL_Image 2.0.2 or later is now required (was 2.0.0).
Translations
- Updated translations: British English, Czech, Italian, Polish, Portuguese (Brazil), Russian, Turkish
Units
- Undead variations for Falcon, Giant Rat, serpents, and Gorer/Tusklet
User interface
- Minor streamlining on the Game Version and Add-ons Manager dialogs.
- Text labels now use the hyperlink mouse cursor while hovering links.
- Link awareness is now configured on a per-instance basis for labels/scroll labels instead of globally in their definition.
WML Engine
- Add a overwrite_specials option for weapon special abilities to allow the effect of the ability to take precedence over the effect of any identical weapon special.
Miscellaneous and Bug Fixes
- Fixed several possible crashes in wmllint
- Screenshots now default to JPG instead of PNG
- Fixed screenshot popup sometimes using the wrong path when trying to open the screenshot after saving
Add-ons server
- Added basic command line options.
- Add-on validation status responses can now be translated by the client.
- Fixed an issue where incremental downloads would always transmit a delta for updating from the very earliest available version of an add-on to the very latest, instead of using the current and target versions specified by the client.
- Incremental downloads are no longer allowed to cheat the download counts.
Add-ons client
- It is now possible to install previous versions of an add-on if present and not expired on the server.
Campaigns
- A Tale of Two Brothers:
- S02: Changed the antagonists' motive and dialogue to sound more believable
- Secrets of the Ancients:
- Revisions to Bone Captain
- Scenario 2 uses new Iron Fence terrain, in preparation for potential map revisions.
- While the two leaders are separated, only the currently active one learns new zombie types.
- Sceptre of Fire:
- Scenario 2p5: increased the turn limit by 1 and enhanced victory filter conditions
- Scenario 4: fixed a bug that prevented resources from spawning and added some small flavor adjustments
- Some revisions/bugfixes to Scenario 9 "Caverns of Flame"
Multiplayer
- During allies' turns, use orb colors to show which ones can still move (issue #1424). Also enabled for allied AI sides in singleplayer.
Terrain
- New barrier terrain: Iron Fence (`^Eqf`) - similar layout to the existing wooden fence
Translations
- Updated translations: British English, Catalan, Polish, Portuguese (Brazil)
Units
- Decreased Icemonax's advancement XP requirement from 26 to 25 to match other dead-end L0 units.
- Portrait and animation graphics for some of the new Wesnoth Fauna
- Balancing:
- Dune Rider xp changed from 42 to 47.
- Sunderer line defense on hills changed from 60% to 50%.
- Scorcher gold cost changed from 23 to 25.
- Dragoon gold cost changed from 27 to 28.
- Elvish Rider gold cost changed from 32 to 28.
User interface
- Added the installable/upgradable version selection to the add-ons manager via a dropdown list
- Fixed formatting of hyperlinks when the same URL appears more than once in a block of text
Miscellaneous and Bug Fixes
- Fixed a rare issue on Windows that could result in wesnoth.exe sticking around waiting for console input after encountering an error despite not being launched with the `--wconsole` option.
- Fixed a potential crash when drawing many images on the story screens.
- Fixed the schema's list of attributes supported by IntroWML.
- Fixed and renamed IntroWML's `[image]resize_with_background=yes` to keep images proportional to the background.
- Fixed precise log timestamps missing a space between the timestamp and the log severity label.
- Improve the in-game help's topic about orbs, add crowns and ellipses.
- Removed documentation for network proxy-related command line options previously removed in version 1.13.1 along with libana.
Note this patch is only available to beta channel players.
Add-ons client
- Implemented support for incremental add-on downloads and uploads (issue #5046, PR #5038).
Add-ons server
- The server configuration no longer contains the add-ons list/metadata (PR #5038):
- Metadata is now stored in individual `data/
/addon.cfg` files (PR #5038). - Full add-on packs are now stored as `data/
/full_pack_ .gz` files instead of `data/ `. - Hash indexes of full add-on packs are stored as `data/
/full_pack_ .hash.gz`. - Full add-on packs are now stored as `data/
- Metadata is now stored in individual `data/
- Implemented support for incremental add-on downloads and uploads (issue #5046, PR #5038):
- Incremental update packs are stored as `data/
/ .gz`files. - Incremental update packs are allowed to be sent by clients in `[upload]` and may be asked from the server in `[request_campaign]`.
- The server can generate an incremental update pack while servicing `[upload]` if the client doesn't send one (e.g. old clients).
- Incremental update packs are stored as `data/
- Previous versions of add-ons are stored on the server for a limited amount of time alongside update packs for older versions (30 days by default) (PR #5038).
Language and i18n
- Updated translations: British English, Czech, French, Japanese, Polish, Portuguese (Brazil)
- The font-handling now checks which glyphs are in each font, instead of using a list hardcoded in WML.
- A bug in the removed code treated the first font containing U+4E00 as having the whole CJK Unified Ideographs block.
- Fixes a bug where many Chinese characters were invisible if DroidSansJapanese was loaded before DroidSansFallbackFull (issue #5194).
- Changing the language immediately updates the order of the fonts, instead of waiting for the next restart (issue #5194).
Lua API
- Implement new GUI2 widget userdata for working with custom dialogs.
- Renamed wesnoth.show_dialog to gui.show_dialog. The preshow and postshow now take a single parameter - a widget userdata.
- All other dialog functions (such as wesnoth.get_dialog_value and wesnoth.set_dialog_value) are now deprecated.
Multiplayer
- Delay Advancements modification:
- The Delay Advancements modification allows changing how advancements are handled. With this enabled, units that previously would have advanced on another player's turn will instead not advance until it is again their side's turn. The benefit of this is that units will also not pick an advancement at random if they have multiple.
Packaging
- When building wesnothd with database support enabled, Boost 1.66 is now the minimum required version.
Terrain
- New wall variation: Overgrown stone walls ('Xof')
Units
- Added Tusker line - Gorer and Tusklet (by TSI 2009)
- Revised Falcon and Elder Falcon sprites
- New units:
- Swamp Lizard (crocodile)
- Cave Bear
- Icemonax
- Giant Stoat
- Fire Ant
- Balancing:
- Cost of Giant Rat changed from 6 to 5.
- Cost of Giant Scorpling changed from 13 to 12.
- Cost of Fire Guardian changed from 16 to 11.
- Cost of Giant Mudcrawler changed from 11.
- Cost of Giant Scorpion changed from 22 to 16.
- Cost of Wolf changed from 17 to 15.
- Cost of Chocobone changed from 38 to 28.
- Cost of Cuttle Fish changed from 40 to 36.
- Cost of Great Wolf changed from 30 to 21.
- Cost of Gryphon changed from 40 to 29.
- Cost of Water Serpent changed from 26 to 23.
- Cost of Direwolf changed from 36 to 33.
- Cost of Sea Serpent changed from 40 to 55.
- Cost of Wild Wyvern changed from 54 to 75.
- Cost of Wyvern Rider changed from 80 to 102.
WML Engine
- Fix a bug with [set_variables][join] failing on boolean (yes/no) values
Miscellaneous and Bug Fixes
- Removed font-analysis utils: codecomp codeextract codeglyphs codelist
- [harm_unit] now calculates liminal damage by using the 1.15 algorithm
Add-ons client
- Add-on titles and descriptions translated to the current language are used when available. The original English title is displayed in the UI and considered for search purposes in addition to translations.
Add-ons server
- Made it possible to provide translations for add-on titles and descriptions at upload time in the .pbl (PR #4993). Only clients running 1.14.14/1.15.4 or later can read the translated values.
Language and i18n
- Updated translations: British English, Catalan, Chinese (Simplified), Chinese (Traditional), Czech, Esperanto, French, Hungarian, Italian, Polish, Portuguese (Brazil), Russian, Spanish, Turkish
Multiplayer
- 5p - The Wilderlands:
- Player 5s units are sorted when cycling through them with the n key.
- Map tweaks (changes to some castles & villages, the northern river and embellishments)
User interface
- Do not list nameless abilities in the Abilities and Ability Upgrades lists in unit descriptions in Help (issue #3060).
- Fixed disabled buttons using the pressed highlight color.
Miscellaneous and bug fixes
- Made wmllint recognize [remove_time_area] in order to avoid spurious warnings about unit ids.
- Files created by the scenario editor include a boilerplate warning about hand-editing them.
Campaigns
- The South Guard:
- S6b: Fixed enemy units triggering their own ambush events.
Language and i18n
- Updated translations: Chinese (Traditional), French, Portuguese (Brazil), Russian
WML engine
- Fixed OOS issues caused by select events triggered during events (issue #4946).
Miscellaneous and bug fixes
- Fixed a major memory leak in the display code affecting all graphics operations, dating back to version 1.13.13.
- Include graphics settings and the list of installed add-ons in the Game Version dialog's clipboard report and the command line --report output.
Add-ons client
- Ensure the client doesn't re-download dependencies that have just been updated during an Update All run by re-reading add-on versions after each update batch (issue #3273).
Add-ons server
- Don't send restricted attributes at all, rather than sending them as an empty string (issue #4800).
Campaigns
- General:
- Fixed instances of multiple [avoid] tags being used (PR#4776).
- Used more appropriate castle/encampment terrains.
- Descent into Darkness:
- S7: Correctly call Taylor a general.
- S9: Spelling fix.
- S11: Reduced boss difficulty and fixed ghost units not being correctly recalled.
- Heir to the Throne:
- S23: Clarify Bayar's dialogue.
- Northern Rebirth:
- Fixed enemy naga's triggering an event they shouldn't be triggering (issue #4853).
- Son of the Black Eye:
- S15: Fix the scenario not ending despite objectives being met in some circumstances (issue #4841).
- Under the Burning Suns:
- Fixed Sun Shydes dehydrating themselves at night.
- Dehydration only affects the player's side.
Language and i18n
- Updated translations: British English, Czech, Chinese (Traditional), Dutch, Esperanto, Finnish, French, Hungarian, Italian, Japanese, Polish, Portuguese, Portuguese (Brazil), Spanish, Swedish.
- Use
/translations instead of /translations to find core translation catalogues on Windows.
Packaging
- Fixed an issue when building using scons and --config=force.
- Fixed creating the lockfile in scons when using python 3.
- Significantly improved the macOS packaging instructions (PR#4781).
Units
- Fixed the team color of the berserker idle animation.
- Fixed typo in Troll race description.
- Fixed the Red Mage using the Mage's idle animation.
User interface
- Fixed a crash on certain screen resolutions due to UI element padding not being able to fit.
- Fixed a crash when trying to preview an unplayable map (PR#4810; issues #3149, #4395, #4545).
Miscellaneous and bug fixes
- Fixed building with the 64-bit Visual Studio projectfiles.
- Added missing side controllers to two Micro AI scenarios (fixes #4890)
- Experimental AI retreat CA: bug fix for cure-only abilities
- Forest Animals Micro AI: excluded rabbit holes on map border
AI:
- Experimental AI:
- Spread poison: bug fix for units ignoring [avoid] tag
- Castle switch: bug fix for units-on-keep check
- Remove village hunt CA
- Add ids for candidate actions
- Fix bug crashing some AIs when units with chance-to-hit specials without id are on map
- Fast Micro AI: fix re-adding default CAs when deleting the MAI
- Bottleneck Defense Micro AI: fix bug of units not participating if too far in front of the bottleneck
- Lua AIs: several other minor behind-the-scenes bug fixes
Campaigns
- Descent into Darkness:
- S1: reduced difficulty
- Heir to the Throne:
- Modify campaign starting date
- Legend of Wesmere:
- Fix various date inconsistencies in historical references
- Sceptre of Fire:
- S1: Fix reference to LoW events
- The South Guard:
- Change Halidel to be Deoran's great-grandfather
- S7b/S8b: reduce enemy gold values and modify dialogue upon allied unit death
- Tutorial:
- S2: Make the first grunt cross the bridge, otherwise the scenario is too hard
- Under the Burning Suns:
- Sun Singer and Sun Sylph: modify faerie fire colors
Language and i18n
- Updated translations: British English, Chinese (Simplified), Chinese (Traditional), Czech, Dutch, Esperanto, French, German, Italian, Korean, Portuguese (Brazil), Russian, Spanish, Turkish
- Fix Rename Unit dialog having untranslated text (issue #4569).
Lua API
- wesnoth.deprecate_api was fixed to correctly wrap tables with metatables (issue #4079).
Music and sound effects
- Removed accidental silence of two seconds after the first track of each scenario (issue #4459).
Units
- Add various new death, standing, and idle animations
User interface
- Fixed some severe game rendering issues with SDL 2.0.10 (issue #4237, issue #4245, issue #4510).
- Draw ellipses during draw/sheath animations (issue #1527).
- In the combat dialog and elsewhere, clicking the "Profile" button opens the help on the correct unit variation (e.g., Walking Corpse (Swimmer)) (issue #4142).
- Ensure enough space to display turn numbers in the hundreds.
- The search box in the Campaigns menu now takes campaign abbreviations and descriptions into account.
- Added the Private Replay checkbox to the Multiplayer Create Game screen. This separates whether observers are allowed from whether the replay will be publicly available.
- In the recruit dialog and recall dialog, units that are too expensive to recruit/recall are grayed out (PR #4362, PR #4444, part of issue #1282).
- Reworked styling of progress bars and the network transfer progress dialog.
- Removed "Classic" in-game theme.
- Textboxes now have a hover effect as well as an I-beam cursor.
Packaging
- The Wesnoth client now looks for the data/dist file when logging into the multiplayer server. This file should contain one of the following values based on what distribution channel the package is for: Default, Steam, SourceForge, Flatpak, macOS App Store, Linux repository, iOS, Android, BSD repository
Miscellaneous and bug fixes
- New build-dependency: Python3 is required to run the WML unit tests (on non-Windows)
- 80% of WML unit tests now run in a batch using a single instance of Wesnoth (non-Windows only)
- New help topic outlining common (and less common) reasons for losing a scenario (PR #4217).
- Add help text for some debug commands (part of issue #2500).
- Make wmllint recognize `[load_resource]` (issue #4538).
- Make wesnoth_addon_manager not generate packet.dump files any more (issue #4651)
AI:
- Fixed a rare crash in attack prediction (issue #4068)
- Experimental AI: fixed guardians being used for village actions
Campaigns
- A Tale of Two Brothers:
- S3: modify castle illumination tip on easy mode
- Dead Water:
- S3: modify starting dialogue
- Descent into Darkness:
- Update campaign description
- Update maps for S1 and S6
- S4: reduce difficulty on easy and normal modes
- S11: reduce difficulty just after Malin turns into lich
- Eastern Invasion:
- S9: add dialogue on victory
- Heir to the Throne:
- Remove 'Princess' as a direct address
- S15, S23: Add explicit hints on EASY. (PR #4329)
- S15: Improve one branch of the victory dialog. (PR #4334)
- Legend of Wesmere:
- S23: Landar's normal death dialogue now (properly) not used
- Northern Rebirth:
- Remove 'Princess' as a direct address
- Sceptre of Fire:
- S5: tell player that gryphon riders can now be recruited
- S9: objectives changed to be more accurate upon moving to the volcano
- Secrets of the Ancients:
- Fixed number of scenarios in campaign listing
- Son of the Black Eye:
- S10: add dialogue on victory
- The Rise of Wesnoth:
- Tweaked dialogue in various scenarios
- Fixed number of scenarios in campaign listing
- S17a: prevent time over defeat if player chooses to defeat remaining saurians
- The South Guard:
- Update campaign description
- Highlight narrator and gameplay explanations with colors
- S1: create Sir Gerrick if player skips scenario with debug
- S4: revise end of scenario dialogue
- S5: add narrator warning when siding with bandits and reduce difficulty
- S6b: create Urza Afalas if player skips S5 with debug
- S6b: kill elves on side 1 if player got to this scenario with debug
- S8b: fixed bug with shifted ToD schedules near campfires
- Under the Burning Suns:
- Various bugfixes (objectives, allied vision, unit spawns, event firing)
- Updated various maps
- Add additional animations to cutscenes and events
- S2: add dehydration explanation to objectives
Graphics
- Own portraits for higher level bats
- New Water Serpent and Cuttlefish portraits
- New Wolf, Great Wolf and Direwolf portraits
- Additional wolf/dog portrait for custom units
- Separate Mudcrawler portrait
- New Walking Corpse portrait for mounted variation
Language and i18n
- Updated translations: British English, Chinese (Traditional), Czech, Dutch, French, German, Italian, Japanese, Portuguese (Brazil), Russian, Spanish, Turkish, Ukrainian
- Changed the :help command's output to split over multiple lines
- Added translatable explanations of :droid, :help and :idle's arguments
Multiplayer
- A New Land:
- Help menu can be accessed in any turn and doesn't pause the game
- Bottleneck in the spider's caves removed
- Swapped positions of Gryphon and Drake
- Guards can't be tricked off position, leaders won't destroy buildings
- Guards and Spiders are loyal AI income has been adjusted accordingly
- AI income increases gradually in lategame (very slowly)
- The Wilderlands:
- Fixed default village_gold being too high, disadvantaging player 5
Packaging
- Added HighContrast icon variant
WML engine
- Fixed [music] ms_after= affecting the previous track instead of the intended one
Miscellaneous and bug fixes
- Update various references of mermen to merfolk or mer
- Adjust several maps to use different castle graphics
- OpenMP support has been removed
- Clarify descriptions of income and upkeep in the help and in tooltips. (PR #4337)
Campaigns
- A Tale of Two Brothers:
- S3: Changed castle to permanent chaotic ToD and rebalanced scenario accordingly
- S4: Added dialogue between Baran and Tairach when they engage in combat
- Dead Water:
- S3: Added event to make Storm Trident more obvious
- Descent into Darkness:
- Complete revision of all dialogue and story text
- Revised and rebalanced gameplay in all scenarios
- S3 and S11: New scenarios completely rewritten from scratch
- Eastern Invasion:
- S1: Removed early finish bonus for fleeing
- S2: Modified Dacyn's dialogue upon undead arrival
- S7a: Require Dacyn to cross the river
- S9: add snow to map
- S10: show objectives after defeating enemy leaders
- S11: show objectives after finding gold and releasing prisoners
- Legend of Wesmere:
- Disabled side shuffling in MP (checking the box does nothing)
- Fixed missing persistent data at the end of chapter 3
- Rebalanced gold values in all scenarios
- S3: remove shroud from enemy sides upon Kalenz's arrival
- S4: (MP only) free Cleodil at scenario start
- Northern Rebirth:
- Eryssa now must survive if she joins the player
- Father Morvin and Sister Thera will now respawn at Tallin's location if they die to prevent illogical gameplay
- Gold in S10-13 is adjusted if Krash is dead
- S1: Spawn 2 Troll Whelps instead of 4 and a normal Troll
- S4: Have Hamel describe Ghouls if Camerin is dead
- S5: Add gates to map instead of images and overlays
- S8: add text and updated objectives when rescuing Eryssa
- S12a: Update objectives to make it clear that gold is not received if Sisal dies
- The Rise of Wesnoth:
- Fixed various typos
- S17c: Modified Burin's description of trolls
- The South Guard:
- Fixed various typos
- Tutorial:
- Remove swamp from map for part 2
- Warn player about water when stepping on any shallow water hex
- Change quintain to level 0
- Allow Konrad and Li'sar to level up and add corresponding dialogue for part 2
- Under the Burning Suns:
- Added embellishments to various maps
Language and i18n
- Updated translations: British English, Chinese (Traditional), Dutch, French, Italian, Japanese, Lithuanian, Spanish.
Multiplayer
- Dark Forecast: AI units are "discovered" (added to the help if not already known)
- Dark Forecast: fixed bug where additional boss spawns would not occur after the initial wave
Multiplayer server
- Forum user handler ban durations are now reported back to banned players.
Units
- Updated descriptions for Goblin Knight and Wolf Rider
- Add new descriptions for Quenoth faction
User interface
- Add jamming to the vision tooltip in the sidebar. (PR #3327)
- Fix undoing a recall not un-drawing parts of the sprite that go beyond the unit's hex (issue #3325)
- Fix crash when the recruit filter matched nothing. (PR #3969)
- "Show Enemy Moves" now highlights enemy units that can reach the highlighted hex. (PR #3961)
- The time of day graphics for midday and midnight have been updated to match the rest of the summer/winter time of day schedules. (issue #2677)
Miscellaneous and bug fixes
- Fix auxiliary attack end event handlers defined by FORCE_CHANCE_TO_HIT breaking if one or more of the affected units are removed by another attack end event handler (issue #3982).
- The statistics dialog no longer forgets to reset stats when using "Reset Replay" ("Stop") in replay mode or "Back to turn" in networked MP games (issue #2852).
AI
- Fixed crash when the AI simulates a fight between two units which can slow but aren't yet slowed, then simulates another fight for one of them in Monte Carlo mode (issue #3650).
- Experimental AI recruiting: fixed AI crash for unit type with unknown race
- Support for modifying the available AIs using cores:
- New parameter default_ai_algorithm for setting the default AI
- New parameter mp_rank for setting the order in which AIs appear in the MP computer player selection menu
- New option "Keep saved AI" when reloading games from the MP Create Game screen. Choosing this option prevents overwriting of the saved AI by the default AI. (issue #3791)
- Forest Animals Micro AI: fix AI crash when using custom rabbit hole image
- Fix Lua AIs using the ai.stopunit_*() functions potentially creating infinite candidate action loops
Campaigns
- Dead Water:
- S12: Slightly rebalanced enemy reinforcements and ai gold
- Descent Into Darkness:
- Allow converting L3 necromancers to liches from S12 onwards (issue #3165).
- Added an alternative method of completing the campaign (issue #3167).
- S8, S9 (A Small Favor II & III): Clarify objectives. (PR #3711)
- S8 (A Small Favor II): Fixed units created via the plague ability not available in S9. (PR #3711)
- Sceptre of Fire:
- S1&2: increased difficulty
- S6: additional guards for the elves
- Secrets of the Ancients:
- S01 Slipping Away: It is now obvious that the wild animals cannot cross the fences.
- S02 Dark Business: Simplify scenario by removing the temporary invisible starting keep.
- S05 Blackwater: Additional dialog from Ardonna at the start.
- S11 Battleground: Ghosts are now able to be recruited after the scenario is complete.
- S15 Mountain Pass: Bird bones moves so bird is easier to keep alive when discovered.
- S21 Against the World: Leader of the elves is now same elf from S12.
- S21 Against the World: Adjustment so player doesn't have to chase down some leaders at the end.
- Proper animation for finding the bird bones.
- Newly made liches will now receive a move point upon transformation if they weren't recalled. this turn and haven't moved yet.
- The Hammer of Thursagan
- S12 'The Underlevels': redesigned with completely new map and scenario
- Northern Rebirth:
- Fix loyal units obtained in S7 costing upkeep (introduced in 1.14.5)
- S13: Improvement to the AIs
- The Rise of Wesnoth:
- S15: victory text is not used upon hero death
- S17d: enemy units are killed upon victory except for bats
- S22: cuttlefish now have the loyal icon
- The South Guard:
- Revised scenario and story dialogue.
- Reworked and rebalanced all scenario and map designs.
- Removed S6a 'Tidings Good and Ill'.
- Tutorial:
- S2: Wolf riders are not initially recruited, to not hinder the player from reaching the island in time
Language and i18n
- Updated translations: British English, Chinese (Simplified), Chinese (Traditional), Czech, French, German, Italian, Japanese, Lithuanian, Russian, Scottish Gaelic, Slovak, Spanish, Ukrainian.
Lua API
- Fix wesnoth.set_dialog_callback calling the function immediately when used in the previous callback. (issue #3794)
- Fix wesnoth.set_dialog_value not triggering re-layout. (issue #3572)
- wml.tostring() now outputs a string that can be parsed back to WML without loss of data.
Miscellaneous and bug fixes
- Fix crash with custom themes on desktop PCs. (issue #3599)
- Add --campaign-skip-story command line switch for skipping directly to turn 1. (issue #3472)
- Remove --data option, --data-path has the same functionality.
- Fix documentation of --render-image command line switch. (issue #3568)
- Update manpage with options previously only documented by wesnoth --help.
- Fix wrong ordering for BW / BF years, for example in Play a Campaign when sorted by date. (issue #3187)
- GUI.pyw can now terminate a running maintenance script
- Fix SDL_DestroyRenderer assertion failure under XMonad. (part of issue #3716)
- Fix map item names not being translated in the scenario editor.
- Usernames specified in the MP UI and command line are now stripped of leading and trailing whitespace, including newlines.
- Show ability of a selected unit as active/inactive with respect to mouseover hex. (issue #3912)
- macOS: Wesnoth now uses the app sandboxing feature, which means there is a new location for saves. All saves will be migrated during first launch automatically. For info about backwards compatibility see: https://gist.github.com/hrubymar10/eb5afd896f933a46fac344ced940e020
- Many units lacking animations now have at least a defense animations
Multiplayer server
- Fix stale temporary bans continuing to have an effect on players until cleared by phpBB on the next ban/unban operation.
Packaging
- new scons option, intended to be used when building releases inside a git repo: autorevision=False
- Fix build with Boost 1.69. (issue #3646)
- Fix build with Pango 1.43. (issue #3840)
User interface
- Fix regression: Game Load screen would not select 1.12 savegames. (issue #3561)
- Fix regression: the in-game "Observers" icon (an eye) was covered by the minimap. (issue #3543)
- Increase step size when clicking sliders in the MP Create Game dialog. (issue #3552)
- Fix overlapping top bar elements with small screen resolutions. (issue #3714)
- Don't scroll to an invisible unit that recruits another invisible unit. (issue #3559)
- When a recruited unit is fogged, scroll to the recruiting unit and play recruit animation. (issue #3577)
- Fix line breaks in first statistics line in unit type pages in the help. (issue #3256)
- Don't scroll to an enemy unit that teleports to or from an invisible hex. (PR #3578)
- Don't show in the sidebar the time of day schedule of a shrouded hex. (PR #3638)
- Game Load screen gracefully handles savefiles that can't be parsed. (issue #3652)
- The sidebar now shows alignment and damages as they would be on the hex under the mouse, rather than at the unit's current location. (PR #3642)
- When a unit has multiple statuses (slowed/poisoned/invisible/etc), the sidebar shows all of them, not just the first. (issue #3197)
- Fixed being able to dismiss a game lobby by pressing Esc.
- Fixed multiple severe issues in the classic theme.
- The "Attack Enemy" dialog now shows inactive weapon specials in gray. (PR #3686)
- Taking screenshots in title screen is possible again (issue #3235)
- The "Recruit Unit" dialog is searchable by unit type name. (PR #3787)
- Add text filter to hotkeys preferences. (PR #3759)
- Hide leader in status table if it's unfogged but invisible. (PR #3854)
- macOS: Dark GUI on macOS Mojave and later when dark appearance is enabled.
AI
- Fixed crash in AI code when a side has multiple leaders.
- Fix AI ignoring teleport locations when moving leader to leader goals.
- Fast Micro AI: Fix bug crashing the AI when units with chance-to-hit specials without id are on map.
Campaigns
- Heir to the Throne:
- S6: Allow canceling an attack when a move+attack spawns enemy units (issue #3459).
- S6: Change the trigger for spawning undead reinforcements (issue #3459).
- S17: Add dialog explaining the lava game mechanic and an easter egg (issue #3473).
- Liberty:
- S3: Add story and war drums music.
- Northern Rebirth:
- S12: empty sides are hidden.
- S13: allied leaders whose death causes defeat won't leave their keep and the lich brothers and Krash got more gold.
- Sceptre of Fire:
- S4: a cave entrance has been added.
- S5: Gryphon Riders are now available starting form S5 (formerly S3).
- S7: it's now impossible to kill all pursuers.
- Secrets of the Ancients:
- Fix dialog said by wrong unit & revert previous fix (issue #3294).
- The Hammer of Thursagan:
- S10: Fix objectives requiring too much of the player.
- The South Guard:
- S2: the case where Deoran is not sent to the Citadel is handled better.
- S2: enemy units will no longer neutralize villages instead of capturing or burning them. This also means certain units will no longer be hidden in the Game Stats list.
- S4: bodyguards are never spawned next to other units, and always in forest.
- S5: zombies have now one castle with two leaders.
- S6a: mermen leave after this scenario and will no longer be available.
- S7a & S8a: a certain hero may now die.
- Tutorial:
- Show an undo reminder if one is out of moves, but can't end the turn yet.
- Added more information to the Status Table prompt about how to access it (issue #2883).
- Under the Burning Suns:
- New graphics for Eloh.
Multiplayer
- A New Land: Fixed village gold being 1 instead of 2.
- Fixed Random Start Time not working (issue #3515).
- Fixed a possible crash when leaving a game as an observer (issue #3017).
- Fixed Start Game locked when other players abort the faction/leader selection dialog (issue #3452).
- Fixed Skip Replay when joining MP campaigns.
- Fixed OOS errors when undoing after ally chat.
- Fixed game freezing upon droiding with Delayed Shroud Updates (issue #3453).
- Fixed require_scenario and require_era attributes.
Language and i18n
- Updated translations: British English, Chinese (Traditional), Czech, French, German, Hungarian, Italian, Japanese, Scottish Gaelic, Ukrainian.
User Interface
- On laptop computers we now show how much battery you have left.
- MacOS: Fixed moving the mouse with a touchpad also scrolling GUI dialogs.
- MacOS: Add build number to OS version report.
- Fix layout of Preferences window with some localizations (such as Czech).
- Load Game now shows the chosen difficulty with the same name that you originally selected.
- Load Game now shows the modifications enabled in the selected savegame (issue #3495).
- Force leader sprites larger than 72x72 to be downscaled in Load Game (issue #3474).
- Add left padding to dialog messages shown with a portrait on the right (issue #1938).
- Addon Manager uses clearer terms for sort order.
- Fix reversed sort order by unit level in Unit List and Recall Unit.
- Fixed crash in Recall Unit when no units match the filter (issue #3475).
WML engine
- Fixed [animate_unit] and [heal_unit] preventing unit halo from disappearing if the unit dies later (issue #3509).
Miscellaneous and bug fixes
- Fix some minor problems with the macOS package.
- Fixed crash when trying to attack with a unit without usable weapons (issue #3424).
- Fixed the debug mode Create Unit dialog crashing when changing the gender of the previous selection after causing the list to come up empty using the filter box.
- Allow searching by race and internal unit type id with the Create Unit filter box as well.
- wmlxgettext is now included in release packages, so a separate download is no longer required to use it with GUI.pyw.
- Fixed crash when pressing Reset replay (issue #3439).
- Fixed editor cannot add starting location for > 9 players.
- Fixed crash in Lua tstring comparision (issue #3541).
- Fixed objectives at scenario start using old/cached values of conditions/variables (issue #3544).
- Show an error message when trying to open the Lua console while not in debug mode.
- On enemy side's turn, don't scroll to that side's leader if it's invisible.
- Fixed :droid ignoring its second argument.
- Fixed :droid giving no feedback when successful.
Security Fixes
- Fixed Lua being able to escape sandboxing via load/loadstring (CVE-2018-1999023).
Add-ons server
- Made it so plain-text .po catalogues in add-ons are detected and added to the list of translations for them.
Campaigns
- Dead Water:
- In 'Tirigaz', take the situation into account of orcs being killed either first or by undead.
- Delfador's Memoirs:
- Fix hero units costing upkeep (issue #3722)
- Eastern Invasion:
- Fixed missing prisoners and loss of recallable units in 'Captured'.
- Northern Rebirth:
- Level 0 units are not available anymore after scenario 5
- Secrets of the Ancients:
- Adjust gender of enemies to better match story in S11 & 21 (issue #3294)
- Simplify dialog to fix possible confusion in S16 (issue #3291)
- Have nagas be able to recruit in S21 (issue #3293)
- The South Guard:
- S4: undead leader won't leave the castle anymore
- S5: the untypical situation that one can defeat the lich before finding Urza Afalas is now handled
- Under the Burning Suns:
- S11: added custom graphics for the citadel.
- S12: clarified the alien bodies' weaknesses.
- Various visual improvements.
Editor
- Fixed saving a map as a scenario not enabling scenario editor tools.
Graphics
- New attack animation for the Peasant.
- Tweaked the Ruffian's attack animation timing.
Language and i18n
- Updated translations: British English, Bulgarian, Chinese (Simplified), Chinese (Traditional), Czech, French, German, Hungarian, Japanese, Scottish Gaelic, Slovak, Spanish
Lua API
- Upgrade to Lua 5.3.5.
Multiplayer server
- Fixed lobby and whisper messages not having a maximum length.
User interface
- Improved the layout of the Statistics dialog.
- Allow changing dropdown menu selections with the scrollwheel (FR #3251).
- Fixed lobby chat box scrolling to top on a new message if it isn't at the bottom (issue #2789).
- Fixed the unit preview pane not showing the default race icon when detailing a single unit's stats.
- Sort units secondarily by XP in the unit list dialog.
- Whiteboard related bugfixes
WML engine
- Fixed errors about WESNOTH_VERSION not being defined when trying to load add-ons that have preprocessor errors (issues #1924, #1634).
Miscellaneous and bug fixes
- Added an advanced preference to enable experimental PRNG combat.
- Campfires use illumination instead of a different ToD.
- Linux builds now enable security hardening by default.
- Fixed MP admins being unable to observe private games.
- Fixed MP faction, leader, and leader gender changes persisting even if the selection dialog is dismissed.
- Fixed an issue with positioned sound sources ignoring the volume set in Preferences after going off the audible radius and back (issue #3280).
- Fixed wmllint choking on gzipped binary files (e.g. gzipped tarballs).
- Fixed wmllint crashing on nonexistent paths provided in the command line (issue #3286).
- Slight changes to the objectives dialogue (pr #3309)
- Greatly improved touch control support.
- Fixed wmlindent crashing on nonexistent paths provided in the command line (issue #3346).
AI
- Fixed crash in presence of units with negative hitpoints (issue #3042).
- Efficiency improvements to filter evaluations in the Goto Micro AI and some AI helper functions
Campaigns
- Dead Water:
- Fix possibility of villagers blocking pickup of sword in S10 The Flaming Sword (issue #3207).
- Descent Into Darkness:
- New Parthyn map in S1 and S6.
- Northern Rebirth:
- Reduced starting gold and income in scenarios 10 to 13
- Secrets of the Ancients:
- Fix S09 Training Session not ending when all dark adepts die (issue #3192)
- Tutorial:
- S2: made enemy starting gold equal to that of the player.
- Under the Burning Suns:
- Added portrait and updated sprite for Giant Ant.
Language and i18n
- Updated translations: British English, Chinese (Traditional), Czech, French, Italian, Japanese, Scottish Gaelic, Spanish
Multiplayer server
- Fixed lan_server option not causing the server to exit once vacated, e.g. when using the Host Networked Game option from the Multiplayer menu in the game (issue #3206).
Music and sound effects
- The music now changes immediately when you load a save file (issue #2602).
- Fixed Lua errors when setting a music track that cannot be found when the playlist is already empty, e.g. if there's no music installed for the game (issue #3194).
WML engine
- Removed validation to ensure units cannot have negative hitpoints. We learned that the ability to create such units is documented, and thus disallowing it was an API change. Since API changes aren't allowed in the stable branch, we have reverted it.
Miscellaneous and bug fixes
- Fixed an occasional crash at the loading screen related to multi-thread access of the image cache.
- [kill] animate=yes no longer scrolls to units through fog or shroud, thus matching 1.12's behavior again.
- [message] displays the unit type name when a nameless unit speaks and no custom caption= is specified (issue #3211).
- do_not_list=yes units are no longer excluded from the debug mode-only Create Unit dialog.
- Fixed a rare issue where disabled attacks could cause the wrong attack to be initially selected in the Unit Attack dialog. This bug also had the potential to cause units to the wrong attack when engaging or viewing damage calculations.
- Fixed [scenario] map_file= being unusable in most circumstances.
Campaigns
Northern Rebirth:
- S02.1 Infested Caves: keep side 8 AI leader from wandering off too far and ending up on a keep with only one hex for recruiting.
- S02.1 Infested Caves: AIs are less likely to kill each other in early game, which would make it harder for the player otherwise.
- S02.1 Infested Caves: Dwarvish allies are also less likely to die.
- S02.1 Infested Caves: minor map tweaks and improvements.
- S05 The Pursuit: removed a bottleneck and tweaked Rod of Justice.
- In 'Caverns of Flame', fixed various issues with the volcano eruption.
- Various Quenoth unit graphics updates.
- In 'A small Favor', disabled a not intended way to win the scenario.
- Bats are transformed to normal ones already after S5
Graphics
- Fixed a minor team coloring mistake in the north-facing Revenant standing animation.
Language and i18n
- Updated translations: British English, Chinese (Simplified), Czech, French, Galician, German, Italian, Japanese, Scottish Gaelic, Spanish, Ukrainian
User interface
- List boxes (MP lobby game list in particular) now keep the scroll position when they change, instead of keeping the selected item visible (issue #3016).
- Fixed MP lobby player list scrolling to top when it changes
- Fixed the first unit sometimes not being selected when opening the Recall dialog.
- Fixed a crash when using very large portraits in [message] (issue #2912)
- Added a button to access the version info dialog to Preferences.
- Removed player list sorting options in the MP lobby. The list is now automatically sorted alphabetically, friends first.
- Rearranged campaign difficulty menu layout
Terrains
- Removed hidden terrains that were not supposed to make it to 1.14: ^Prg, ^Prgo, ^Pwd, ^Pwdo
Miscellaneous and bug fixes
- Fixed memory leak in terrain filter code. In a huge map with Silver Mages, it could leak several gigabytes of memory in a long session.
- Fixed: unit halo remained after undoing a recall (issue #3065)
- Fixed: unit halo intensity doubled during AMLA animation
- [change_theme] no longer causes a Lua error when theme= is not specified instead of explicitly set to an empty string.
- [change_theme] no longer requires running a separate action to update the UI afterwards (e.g. [redraw]) and the status panels are updated immediately. as well.
- Lua random map generator: fixed error when flipping map; specifically this also fixes an assert at the start of HttT S7 (Sceptre of Fire) that had a 50% chance of being triggered
- Experimental AI: fixed recruiting not working on maps without enemies, such as the first two turns of Dark Forecast
- Experimental AI: fixed recruiting evaluations sometimes not being updated
- Replaced deprecated Lua code and all remaining uses of FOREACH and MESSAGE macros
- Fixed [color_adjust] interacting poorly with time of day color shifts and values outside the [-255, 255] range (issue #3144).
- Fixed a regression from 1.13.10 where modification option values couldn't be properly saved in arrays.
- Added stricter validation to ensure units cannot have negative hitpoints, except during specific attack-related events.
- Added deprecation notices for several macros that had them missing before.
- [message] no longer scrolls to units through fog or shroud so it matches 1.12's behavior.
- Fixed animation-wide text_color and blend_color keys being overwritten. This fixes level-in and level-out animations sometimes fading to black instead of white.
- Fixed [animate_unit] freezing the game when observing MP games (#2970).
- Fixed carryover behaving differently when loading a start-of-scenario save (issue #3152).
- Fixed turn replay function in MP.
- Fixed savegames being created even when not needed (issue #3150).
- Fixed handling of extra_recruit in planning mode (issue #3100).
- Fixed handling of skirmisher in planning mode.
- Fixed handling of filter_recall in planning mode.
- Fixed possible segfault at game end.
- Fixed require_resource in [resource].
- Fixed require_scenario=yes not working with map_generation (issue #3105).
Campaigns
- Eastern Invasion: * In 'Captured', fixed units incorrectly costing upkeep after leveling up.
- Secrets of the Ancients * Fixed minor unit naming inconsistencies (issues #2844 and #2846).
- Under the Burning Suns * Added custom graphics for the broken tree in S1. * Various sprite and image updates. * Fixed a bug in the formation ability causing defense bonuses not being received in some cases.
Language and i18n
- Updated translations: British English, Chinese (Simplified), Czech, French, Galician, German, Italian, Japanese, Scottish Gaelic, Slovak, Spanish
- Fixed Logging Options tooltips not being translatable (issue #2837).
Multiplayer server
- Added support for matching user, IP, and email bans from a forums board when the forum_user_handler is enabled and active. (IP and email bans with wildcards are not supported yet.)
- Fixed various instances of the server crashing under certain conditions.
Performance
- Added an option to disable the FPS limiter for a slight performance boost.
Units
- Changed the plural name for the merfolk race from Mermen to Merfolk (issue #2940) and replaced a few instances in core unit or terrain descriptions accordingly.
User interface
- Removed individual Join/Observe buttons for each game in the MP Lobby.
- Highlight the titles of MP games with vacant slots.
- Improved MP Lobby layout on low resolutions.
- Improved reporting of network errors in the MP lobby (issue #3005).
- Ensure the chat widget remains the correct size even after a window resize.
- Custom MP game names are now capped at 50 characters.
- Restored Era info to main MP game display.
- Improved the resolution selection criteria for the MP Lobby.
- Fixed inactive weapon specials being displayed in the Unit Attack dialog unlike in 1.12 (issue #3033).
Miscellaneous and bug fixes
- Removed misleading tooltip text stating registered nicknames are optional for the official MP server.
- Attempting to save a screenshot with an unsupported format now shows an error message, instead of saving the screenshot as BMP with the requested extension.
- It is now possible to disable logdomains in the Logging Options dialog.
- Fixed the wesnoth(6) manpage claiming the default log level is 'error' when it has been 'warning' since version 1.9.0.
- Document --log-none in the wesnoth(6) manpage.
- Avoid trying to load invalid base64-encoded data URIs.
- wesnoth_addon_manager and the addons.wesnoth.org web index can now use data URIs.
- Fixed a crash when using certain invalid color= values.
- Implemented a workaround for an unhandled std::bad_cast from string comparison functions that caused a crash-to-desktop when opening Preferences among others (issue #3050).
Battle for Wesnoth
The Battle for Wesnoth Project
Wesnoth Inc.
2018-05-01
Indie Strategy Singleplayer Multiplayer
Game News Posts 73
🎹🖱️Keyboard + Mouse
Very Positive
(5016 reviews)
https://www.wesnoth.org/
https://store.steampowered.com/app/599390 
The Game includes VR Support
Battle for Wesnoth Depot [492.79 M]Battle for Wesnoth Depot Linux Binary [87.66 M]
Then take the battle online! Choose from seven fully-balanced factions and duke it out with your friends in over 50 multiplayer maps for parties of all sizes!
Explore hundreds of creative community-made campaigns, maps, and factions for both single and multiplayer, and try your hand at crafting your own! Wesnoth features a built-in map editor, a highly moddable engine, a simple and intuitive scripting language, and a friendly and dedicated modding community. There's no telling what adventures you'll bring to life!
- OS: Ubuntu 20.04 or compatible
- Processor: Dual-core 2.0 GHz or betterMemory: 2 GB RAMStorage: 800 MB available spaceAdditional Notes:
- Memory: 2 GB RAMStorage: 800 MB available spaceAdditional Notes:
- Storage: 800 MB available spaceAdditional Notes:
- OS: Ubuntu 22.04 or compatible
- Processor: Dual-core 3.2 GHz or betterMemory: 4 GB RAMNetwork: Broadband Internet connectionStorage: 2 GB available spaceAdditional Notes:
- Memory: 4 GB RAMNetwork: Broadband Internet connectionStorage: 2 GB available spaceAdditional Notes:
- Storage: 2 GB available spaceAdditional Notes:
[ 5951 ]
[ 3154 ]