Skip to content

Neo Angband 0.29.0

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Aug 17:40
· 1413 commits to master since this release

What you can download

Platform File
Windows (installer) Neo Angband Setup 0.29.0.exe
Windows (portable, one file) Neo Angband-0.29.0-portable.exe
macOS .dmg, or the .zip if you prefer to unpack it yourself
Linux .AppImage (no install), .deb, or .tar.gz
Self-hosting neo-angband-web-0.29.0.zip - static files, any web server

The portable Windows build and the AppImage need no installer:
download, run, and the game keeps its saves in a folder beside itself.

These builds are not code-signed

There is no Apple Developer identity or Windows certificate behind this
project yet, so your OS blocks the first launch.

Windows is one click: SmartScreen says "Windows protected your PC",
choose More info then Run anyway.

macOS is not one click, and the dialog it shows you does not contain the
way through
- it offers only Done and Move to Trash. Do this:

  1. Drag the app out of the .dmg, then double-click it and press Done
    on the refusal. This step is required: it is what makes the permission
    below appear, and it expires about an hour later.
  2. Open System Settings -> Privacy & Security and scroll to
    Security, near the bottom.
  3. Press Open Anyway on the line naming Neo Angband, authenticate, and
    launch it again.

Or, the same decision in one command:
xattr -d com.apple.quarantine "/Applications/Neo Angband.app"

The old right-click -> Open trick does NOT work: Apple removed that
bypass in macOS 15 Sequoia.

On Apple Silicon take the arm64 build. The x64 one is for Intel Macs,
not a fallback - Apple is withdrawing Rosetta 2, so on a current Mac it is
likelier to refuse to launch than to run slowly.

If that trade is not one you want to make, build it yourself -
docs/INSTALL.md - or play in the browser, which needs no trust decision.

Your save

Saves survive an update. Every save-format change ships the conversion that
reads the version before it, and a save this build cannot open is left
untouched rather than replaced.


Added

  • Mod authors can now put renamedSectionFlags on a PackSection to preserve
    a player's explicit on/off decision when a section is renamed or when a rule
    becomes a section to gate content. The host imports the first matching legacy
    rule or section choice before applying the section default.
  • A save's manifest now records the content digest of every present pack.
    Loading warns when a still-present pack's digest no longer matches what the
    save was written with, catching a session-only mod that patched a core
    record (rather than only adding one) differently, or dropped the patch
    entirely, even though nothing was orphaned. Only session mods are measured
    today; a regular installed mod's digest is a documented follow-up
    (docs/modding/MOD_SEAMS.md section 4d).
  • The agent view can answer "does this player's class have flag X."
    PlayerView.classFlags reports the PF_* codes on the player class's own flag
    set (class.txt's player-flags: lines) - COMBAT_REGEN for a Blackguard, ZERO_FAIL
    for a Mage, and so on. The view already carried equipment-derived object flags
    and derived skills, but nothing that read the class definition itself, so a mod
    asking a class-flag question had no seam to ask it through. A new field on an
    existing view rather than a new accessor, so the agent API is now 1.3.0.

Fixed

  • flavor.txt's fixed:/flavor: order is now recoverable from the
    compiled record.
    The content compiler used to split the two directives
    into separate arrays, so a record that interleaved them could not be
    reproduced from the compiled shape at all - the entry index cannot stand
    in for file order either, since flavor.txt's own numbering is not the order
    the file writes lines in. Nothing shipped interleaves the two directives, so
    this was latent rather than live; it would have become live the moment a
    mod's flavor.txt did. The compiler now emits one ordered entries list per
    record, each entry tagged with which directive produced it, so binding
    follows the file's real line order regardless of how a flavor.txt
    interleaves fixed: and flavor:.

Found something that does not match Angband 4.2.6? Open an issue or come and say so in the Discord.