Neo Angband 0.27.0
Pre-releaseWhat you can download
| Platform | File |
|---|---|
| Windows (installer) | Neo Angband Setup 0.27.0.exe |
| Windows (portable, one file) | Neo Angband-0.27.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.27.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:
- 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. - Open System Settings -> Privacy & Security and scroll to
Security, near the bottom. - 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.
A trading and rest release: an agent's shop-buy, shop-sell and shop-exit
commands now reach a real handler instead of a silent no-op, and the rest
command carries its own multi-turn continuation matching upstream instead of
spending exactly one turn per call, so resting reaches the doubled
regeneration rate upstream gives it. Alongside these, "Report a problem" opens
the right issue tracker for the game or an installed mod directly from the
report screen, repeated messages page correctly during a run or a rest, and
the recall screen's run-length format matches upstream's own.
Added
-
"Report a problem" now opens the right issue tracker, for the game or for a
mod. Once the report file is written the screen lists a destination per
project and opens the chosen one in the real browser:Gfor Neo Angband,C
for the RPGM Tools Discord, and a digit for each enabled mod that has a
recorded origin. Nothing is uploaded; the file is still attached by hand.A mod's address is read from its install record, which is the repository the
mod was pinned to on first install rather than whatever the copy on disk now
claims. Neo Angband's own row goes to the template chooser, because its two
templates are known to exist; a mod's row goes to the tracker root instead,
because whether somebody else's repository has templates, or has issues open at
all, cannot be known from inside the game. A mod whose origin is not a
repository the game can address - one imported from a file that declared none,
for instance - says so and offers no key, rather than guessing at a URL that
might open a stranger's project. Every address is printed under its row, so no
page is opened that the player has not read first.The same screen now gives the advice that decides whether a report is
actionable: one problem per report, search the tracker first, say what you did
and expected and got, and which of the two forms a difference from Angband
belongs in.
Fixed
- The
restcommand spent exactly one game turn per invocation no matter what
duration was requested, because it was wired to the same handler as standing
still in place. Upstream's own rest command takes one turn too, but re-queues
itself on the internal command queue so a single keypress runs to the full
requested duration - a turn count, "until HP and SP are full", "until nothing
is needed", or "until either is full" - without asking for input again, and
stops early on a disturbance exactly as any other rest would. The port's
desktop keyboard worked around the gap with its own turn-by-turn loop outside
the engine, so it looked correct at the keyboard; every other caller of the
command queue got only the single turn, and never reached the five-turn
threshold for resting's doubled regeneration rate. The command now carries
its own multi-turn continuation, matching upstream, and reaches every caller
the same way. - Repeated identical messages showed as one top line with a ticking
<Nx>
counter instead of being reprinted. Upstream keeps the run-length count for
the recall screen only: the top line is redrawn for every occurrence, several
share the line, and a-more-prompt stops for each screenful. The recall
screen (Ctrl-P) still collapses the run, unchanged. Two related cases came
with it: the top line no longer carries a<Nx>suffix that belongs only to
the recall screen, and the partial line left by a step of a run or a rest now
carries into the next step instead of being wiped, so its-more-arrives
when the line fills rather than never. A dig, an open or a disarm keeps
starting each attempt on a fresh line, which is what upstream does for a
command repeating on its own count. Reported bynck_m. - Leaving a level with several screenfuls of pending messages read only the
earlier ones: the last screenful got no-more-and was wiped by the new
level. The flush before a level change now stops for every screenful. - A run of identical messages on the recall screen (
Ctrl-P) readtext (xN);
upstream's own format (ui-knowledge.c,ui-display.c) istext <Nx>. Three
comments describing the old, wrong format as upstream's are corrected too.
Reported bynck_m. - "Report a problem" told a player to send the written file "wherever you got
the game from," naming no actual destination. It now names the GitHub issue
tracker and the RPGM Tools Discord, and the two issue form templates note
that the report file already answers several of their required fields.
Reported bynck_m. - An agent's
shopBuy/shopSell/shopExitcommands reached no handler at
all: the engine's command registry had nobody registered forshop-buy,
shop-sellorshop-exit, so a controller's shopping decisions were a
silent no-op and an autoplayer that stepped into a shop could not spend or
raise a copper. The three now resolve a stock index or a gear handle into a
real object, re-check standing in the right store, and commit through the
same buy/sell path the interactive shop screen uses.
Found something that does not match Angband 4.2.6? Open an issue or come and say so in the Discord.