Favella · v1.4.4
FAVELLA 1
An interactive fiction engine you program in Italian.

Preview
What it is
FAVELLA 1 is an interactive fiction engine in which the code is an Italian sentence: you write «La cucina è una stanza.» and the kitchen exists. Definitive version 1.4.4: language, engine, manual and site stay as they are.
FAVELLA 1 is a game engine for interactive fiction that lets you create worlds by writing simple sentences in Italian. It was born as an experiment, with an ambitious mission: to make the development of text adventures accessible to everyone, especially writers and game designers, using the Italian language as a real programming language. Code is prose: if you can describe a scene, you can program it.
There are no curly braces to balance and no semicolons to remember: you write «La porta di ferro è chiusa.» and that sentence, as it is, becomes a rule of the world. Beneath the prose there is real engineering: a two-pass compiler with an LALR(1) parser, unambiguous by construction, protected by 1180 language tests and 50 check tests. The engine is written in Python, with a single dependency.
It is a finished project. Version 1.4.4 is the definitive one and will not be modified again: stories written today will run the same in ten years. The repository stays open under the MIT licence, as a reference for anyone who wants to learn, pick up the work or take it somewhere else. Favella Studio is its writing home.
Features
- 01
Write in Italian: sentences become rooms, objects and characters
- 02
Unambiguous grammar, by construction
- 03
A living world: states, counters, events and daemons
- 04
Branching dialogues and characters that move
- 05
Authorial chance and quantities that talk to each other
- 06
Save and load, undo and redo
- 07
Verb buttons: play by typing or tapping
- 08
Export a story to a playable, shareable HTML file
- 09
Static check and a check that plays
- 10
Module library and story gallery
- 11
Installers for Windows, Linux and macOS, and pip install
- 12
Favella Studio, the visual writing environment
- 13
Free digital manual in PDF
Italian is the language
FAVELLA 1 was born from a twofold passion: for interactive fiction, in the wake of Zork and the text adventures of Infocom, and for programming languages. For years the reference point of the field has been Inform 7: powerful, but tied to English and to a syntax that intimidates anyone who is not a programmer. The idea of an Italian alternative, intuitive and modern, stayed in a drawer for a long time.
The insight is radical in its simplicity: what if Italian were not used to comment the code, but were the code itself? The project's cover promise is exactly this: your code is a story.
- A room
- La prigione è una stanza.
- A description
- La descrizione della prigione è «Una cella umida con una porta di ferro a nord.».
- An object
- La chiave arrugginita è prendibile.
- A beginning
- Il giocatore comincia in prigione.
- A rule
- Invece di apri la porta di ferro se il giocatore ha la chiave arrugginita: dire «La porta si apre!».
What the language can do
With version 1.0.0 the language was declared complete: every construct had found its place. Afterwards, the 1.x versions only added things, without touching what worked. The result is a world that behaves as if alive.
- Rich Italian
- Plural copula, genitives and partitives, articulated prepositions, reliable accents in names. Custom verbs even of several words, and synonyms for every verb.
- Conditions and rules
- Instead of, Before and After rules, with «otherwise»; compound conditions with and, or and not, even in parentheses; two-object actions such as «use the key on the door».
- A living world
- States and counters, timed events, daemons (rules that fire by themselves), dark and light, characters that walk, branching dialogues, pronouns and anaphora, Undo and Again.
- Counters talk to each other
- A quantity can be a number, the value of another counter or a random draw: «reduce the life by [strength]», «by a number between 2 and 6», and dynamic comparisons between quantities.
- Authorial chance
- A random choice among state values, «the weather becomes one of clear, rain, fog», and a probabilistic condition, «Every turn if it happens (1 in 4)». Everything is reproducible and undoable.
- The world that changes on stage
- Switchable darkness, «the clearing becomes dark» or «lit», and conditional lines of dialogue.
- State talks to state
- Indirection between states: one state is copied into another, «the courted becomes the favourite», and compared, «if the courted is the same as the favourite».
- Initial place
- An ambient sentence that introduces an object until nobody has moved it, then disappears.
- What stays out
- The themes of quantities with plurals and entity templates are deliberately left out: simplicity for the author is a feature, and a stock can already be expressed as a counter.
For the player
A story is played by typing commands («examine the little table», «go north», «take the key»), or by tapping. With verb buttons, in the exported page and in the website's cassettes, you build the sentence by tapping a verb, an object and, if needed, a second object: «Give», then «Apple», then «to the guard». The buttons propose only what the player already knows, and verbs invented by the author appear after the player has found them by typing.
The author chooses with a sentence: «I comandi si scrivono.» (text only), «I comandi si scelgono con i pulsanti.» (buttons only); the default is both. Typos do not consume turns, «exit» does not close the game by mistake, and the engine knows everyday verbs: open, close, turn on, turn off, eat, drink, wait, «take all», and the directions up, down, northeast.
You save and load with «salva mattina» and «carica mattina», wherever the engine runs: the game is rebuilt by replaying the commands, and a fingerprint of the state checks it.
How to install it
Since version 0.29.0 FAVELLA has been distributed as a cross-platform installer: you download the one for your system from the latest release on GitHub, and there is no need to clone the repository or install Python. The executables are not signed: at first start you accept the SmartScreen warning on Windows or the Gatekeeper warning on macOS.
Whoever has Python 3.10 or later can instead install the package from PyPI with «pip install favella1», which brings the standard module library and the story gallery with it.
- Windows
- Installer favella1-setup-…-windows-x64.exe, which creates shortcuts in the Start menu.
- macOS
- favella1-…-macos-arm64.dmg image for Apple Silicon: drag the folder into Applications.
- Linux
- favella1-…-linux-x86_64.AppImage file: make it executable and launch it.
- pip
- pip install favella1, then «favella1 versione» to check.
Command-line tools
After installation the «favella1» command does everything: you play a story, open the lab in the browser, check it, export it.
- favella1 gioca storia.fav
- Plays a story.
- favella1 playground
- Editor and engine in the browser, even offline.
- favella1 compila storia.fav
- Diagnostics only: reports errors and warnings without playing.
- favella1 collaudo storia.fav
- The static checker. With --finali it says which endings can be reached by playing.
- favella1 esplora storia.fav
- Random games: reports anomalies and coverage, that is where the story breaks.
- favella1 esporta storia.fav
- Generates a single playable, shareable .html file, with the story and the engine.
- favella1 galleria · libreria
- They list, play and copy the gallery's stories and the library's modules.
A gallery and a library
The package brings three short, complete and winnable adventures, with commented source: they are for having fun in five to ten minutes and for learning by reading how they are made. For something bigger there are the official demos, such as «Il Relitto Silente», science fiction in 15 rooms, and «La Casa di Via Stradivari», the manual's guide story.
The standard library collects .fav modules to include with «Includi», ready-to-use vocabulary that recurs in almost every adventure, so it does not need rewriting every time.
- Il Faro Spento
- Five minutes, atmospheric mystery: relight the lantern at the top of the lighthouse before the ship crashes on the rocks.
- Il Giardino Murato
- Ten minutes, fairy tale and riddle: you do not leave this garden with keys, but with a gift.
- Il Forziere dei Tre Sigilli
- Ten minutes, gothic riddle: gather the three seals hidden in the castle and open the iron chest with three recesses.
- sinonimi.fav
- Synonyms of library verbs, such as «scruta», «arraffa», «spalanca».
- proprieta.fav
- Pairs of common opposite properties, such as broken and intact, wet and dry.
- verbi.fav
- Action verbs the engine does not know by itself: «brucia», «scava», «bussa», «salta».
To learn
The language has its own Programming Manual: twenty-one chapters, 95 pages in the third edition, which tells every construct with a story example from beginning to end. The PDF is free, and there is also the paper edition on Amazon; their pages, and that of the Favella Studio guide, are linked below.
The official website favella.eu also offers an interactive course, in homage to the cassette programming courses of the early Eighties: twenty-one «cassettes», one per chapter of the manual, in which, when a lesson asks for a sentence, it is the real engine that compiles it. And the lab «Programma con FAVELLA 1»: the real engine, running in the browser, you write on the left, press «Compila e gioca», test on the right, and read the compiler's authentic errors with the line number.
Reliable by construction
The grammar is LALR(1) and unambiguous by construction: the compiler works in two passes, first a symbol table that collects the names of rooms and objects, then parsing with those names as closed tokens. Italian stays natural, but the grammar stays deterministic. A permanent anti-ambiguity guard, in the test suite, checks that no sentence of the corpus has more than one tree.
The suite counts 1180 language assertions and 50 for the static checker, all green, plus 425 pytest tests. The latest versions came from sweeping checks: 1.4.3 from a fuzz of 1520 commands and the eleven suites of Il Viaggiatore, 1.4.4 from an error reported at the wrong line, found while writing the Favella Studio guide.
How it grew
The language grew by levels, starting from a small subset of Italian. The latest stages, in order:
- 1.0.0
- The language is declared complete, after the eight levels of the roadmap, the living world and the four themes.
- 1.2.0
- Save and load, the check that plays, synonyms for authors' verbs: all of it came out of writing a real game, Il Viaggiatore.
- 1.3.0
- Resolves all the issues of a critical analysis: typos do not consume turns, new verbs and directions, «give the apple to the guard», conditional texts, title and prologue.
- 1.4.0
- The verb buttons, and the engine emitting a stream of typed events instead of writing with print().
- 1.4.1 and 1.4.2
- Four defects found while playing Il Viaggiatore; «use the key to open the trapdoor», «use the key and open the trapdoor» and «open the trapdoor with the key» all count as «use the key on the trapdoor».
- 1.4.3 and 1.4.4
- Three defects found by a fuzz of 1520 commands; the right line for errors, on 6 October 2026: the definitive version.
Its home and its companions
Favella Studio is the visual writing environment of FAVELLA 1: an application for Windows and Linux with the engine inside, which shows as panels what the language writes as sentences. Il Viaggiatore is a real game written in FAVELLA, with its own repository and releases: the language's biggest features, from saves to the check that plays, were born while writing it. Both, with the manuals and the guide, are pages of this universe, linked below.
A finished project
FAVELLA 1 is finished. Version 1.4.4 is the definitive one and will not be modified again: language, engine, manual and site stay as they are. The repository is public, under the MIT licence, as a reference for anyone who wants to learn, pick up the work or take it somewhere else. No contributions to the language are expected.
The project was not written in solitude, but in constant dialogue with an artificial intelligence: a development partner with whom to define the specifications, explore the design of the grammar, generate code and refactor. A hybrid approach that leaves vision and decisions to the human author, Simone Pizzi, and speeds up everything else. The project's official home is favella.eu.
Technical sheet
- Version
- 1.4.4 (definitive)
- License
- MIT
- Platforms
- Windows · Linux · macOS
- Installers
- Windows x64 (.exe) · macOS Apple Silicon (.dmg) · Linux x86_64 (AppImage)
- Package
- pip install favella1 (Python 3.10 or later, on PyPI)
- Engine
- Python, with desktop interface · single dependency: lark
- Grammar
- LALR(1), unambiguous by construction
- Testing
- 1180 language assertions · 50 for the checker
- Language
- Italian
- Manual
- 21 chapters, 95 pages · third edition
- Status
- Finished: it will not be modified again
- Official website
- favella.eu
- Status
- Available
Available
Ready to try it?
Get it from the releases page, with the source open.
Other versions: macOS (Apple Silicon)
Universo Favella
In Universo Favella
FAVELLA is the programming language in Italian for interactive fiction. These pages are part of the same world.

Favella Studio
Write your adventure, watch it become a world.
Discover →
FAVELLA 1: Manuale di Programmazione
Write a story. Get a world.
Discover →
FAVELLA 1: Manuale di Programmazione (ebook)
Write a story. Get a world.
Discover →
Favella Studio: Guida all'uso
The step-by-step guide to Favella Studio, the writing environment of FAVELLA 1.
Discover →
Il Viaggiatore
A text adventure of survival and journey, written in FAVELLA 1.
Discover →