Reference
Limits, formats and options
Reference tables for limits, command-line and environment options, file formats, app addresses and map building blocks.
Limits#
| What | Limit |
|---|---|
| Note text / title | 50,000 / 200 characters |
| Answer to a question | 2,000 characters |
| Person's name / notes | 80 / 20,000 characters |
| Farm entry's name / notes | 80 / 20,000 characters |
| Progress maximum on a person | 1 to 99 |
| Custom fields on a person or farm entry | 30 fields; label 40, value 500 characters |
| Planted or harvested count | 0 to 999,999 |
| Tag name / tags on one record | 40 characters / 30 |
| Links on one note | 50 |
| Journal name | 60 characters |
| Section name | 30 characters |
| Seasons / season name / days in a season | 1 to 12 / 20 characters / 1 to 99 |
| Game year | 1 to 99,999 |
| Search query | 200 characters |
| Map name | 80 characters |
| Shapes / markers / layers / guides per map | 3,000 / 500 / 30 / 50 |
| Points in one freehand stroke | 5,000 |
| Text on a map label / on a text object / note on an object | 120 / 2,000 / 500 characters |
| Marker name / status / short note | 80 / 30 / 5,000 characters |
| Tags / custom fields on a marker | 10 / 10 |
| Marker types | 50 (name up to 30 characters) |
| Map versions kept | 30 automatic, 50 named; automatic ones at most every 10 minutes |
| Import file size | 50 MB |
| Deleted items are kept | 30 days |
Command-line and environment options#
Computer version only. Everything is optional.
| Flag | Variable | Default | What it does |
|---|---|---|---|
--port <n> | MOSS_PORT | 4317 | Port to listen on |
--data-dir <folder> | MOSS_DATA_DIR | platform default | Where the data folder is |
--journal <name> | MOSS_JOURNAL | not set | Journal (file name without .db) to open at start; made from the Default template if it does not exist. If it is damaged or was made by a newer version, Mossnote stops instead of opening a different journal. Unset: the one used last |
--lan | MOSS_LAN | not set | 1 allows paired phones; 0 never, whatever Settings says. Unset: the choice saved in Settings |
--no-open | MOSS_OPEN_BROWSER | 1 | 0 stops it opening a browser |
MOSS_BACKUP_KEEP | 14 | Automatic snapshots to keep per journal | |
MOSS_LOG_LEVEL | info | error, warn, info or debug. Logs never include note text | |
MOSS_HOST | 127.0.0.1 | Address to listen on. Must be a loopback address (an override exists but is unsupported) | |
--version, -v | Print the version | ||
--help, -h | Print the options |
Mossnote needs Node 22.14 or newer, or Python 3.10 or newer with the Python package, which brings its own Node.js. Older versions are refused with a message, because the SQLite module does not work on them. Node 22, 24 and 26 are tested. An option or a word that Mossnote does not know is reported and nothing starts. --port=4000 works as well as --port 4000, an option wins over its variable, and a variable that is set but empty counts as not set. The web version has no options; its address base is set when it is built (MOSS_BASE).
App addresses#
You can bookmark any of these. /… is relative to wherever Mossnote is served.
| Address | Shows |
|---|---|
/ | Today |
/day/<key> | One in-game day |
/journal and ?flag=…&state=…&tag=…&undated=1&order=asc | The Journal and its filters |
/notes/<id> | One note |
/people, /people/<id> | People list, one person (list also takes ?tag= and ?sort=updated) |
/farm, /farm/<id> | Farm list, one entry (Stardew Valley only; other journals show Not found) |
/maps, /maps/<id> | Maps list, one map (?pin=<id> selects a marker) |
/search?q=… | Search results |
/settings, /settings#data | Settings and a section |
/tags/<name> | Redirects to the Journal filtered to that tag |
/pair | The pairing page (computer version, phone access on) |
In the web version the app also answers any other address with its Not found page, so a typed or bookmarked path always opens the app.
Export format#
Export JSON writes one JSON file. Its top level has these keys:
| Key | Holds |
|---|---|
format, formatVersion | Which kind of file, and its version (currently 1). A file with a newer version than the app can read is refused. |
exportedAt, app | When it was made, and the Mossnote version. |
journalName | The journal's name. |
settings | Calendar, layout (template, sections), preferences and marker types. |
tags, people, plantings, maps, notes | Your records. They keep their identifiers, reference tags by name, and drop anything in Recently deleted. |
- Dates are written as
{ "year": 1, "season": 0, "day": 3 }; a note's date also gets the season's name for readability, which is ignored on import. In a day-counter journal "season" is always 0. - Import validates every field. It reports problems with their position in the file and changes nothing if there are any.
Export Markdown writes a readable document: # Mossnote, a line with the date and counts, then ## Journal (one ### heading per day, notes marked ✦ or ?), ## Not dated, ## Questions (### Open, ### Solved), ## People, ## Farm and ## Maps. Sections with nothing in them are left out.
A single map's Editable project file is a separate JSON file (.mossmap.json) that holds that map only.
Map building blocks#
- Marker icons (20): pin, dot, star, flag, question, exclamation, door, key, chest, person, house, tree, water, mountain, cross, eye, heart, diamond, bolt, cave.
- Named colours (6): ink, moss, sky, rose, amber, plum, plus a custom colour. Named colours adapt to the light and dark themes; exports use fixed colours.
- Line widths: 1, 2, 3, 5, 8, 14. Line styles: solid, dashed, dotted.
- Text kinds: Text, Card, Callout, Sticky. Connector routes: straight, curved, elbow. Arrowheads: none, one end, both.
- Suggested layers: Background, Terrain, Paths, Locations, Notes. Suggested marker types: Important, Question, Person, Treasure, Entrance, Blocked, Interesting.
Under the hood#
- Database: SQLite, one file per journal, with full-text search (FTS5) and automatic migrations.
- Fonts: Inter and Literata, bundled; nothing is fetched.
- Licence: MIT. SQLite WebAssembly in the web version is Apache-2.0.