Community Edition “New breath for an old well.”

Heroes and Monsters

Classes and levels

A world can offer up to 89 character classes, and a hero climbs levels 0 to 100 in one of them. The +LEVELS table describes both. A numeric row is keyed by class times 100 plus level: row 107 is class 1 at level 7, row 1200 is class 12 at level 0. Each row gives the HP and MP gained at that level, the title the hero carries (with gender forms separated by a vertical bar), and, on the level-0 row only, the class name, its magic-to-hand ratio and its starting weapon.

You do not have to write all hundred levels. A gain carries forward until a later row changes it, and the AUTO_MAX keyword replaces the per-level gains with a curve from a starting figure to a level-100 figure. The experience needed for each level is the same for every class and is built into the game: the second column of a levels row is read but not used.

Keyword rows follow a class's numeric rows and apply to that class. The ones you will use most:

KeywordSets
DESCRIPTIONThe blurb shown when a new soul is choosing a class.
START_ABILITY, MAX_ABILITYStrength, wisdom, stamina, agility and dexterity at birth, and their caps.
START_HAND_PP, MAX_HAND_PPTraining points in each of the eight weapon hands at birth, and how far each can be trained.
START_ELEMENT_PP, MAX_ELEMENT_PPThe same for the eight elements.
START_ITEMS, START_SPELLS, START_TOKENSUp to eight of each that a new hero of the class begins with.
START_LOCATIONMap, link and whether to drop straight into the scene.
DEFAULT_SKINThe skin a new hero wears, one name per gender.
MAGIC_RATIO / HAND_RATIOHow the class splits its power between spells and weapons.
MAX_WALLET, NO_GIFTSA lower gold cap, and a class that cannot be handed items.
HIDDEN_CLASSA class nobody can pick at the Well. The script can move a hero into it by setting the num.hostClass cookie, and the hero is held to the level given.

The full list, with every argument, is on the Table Reference.

Hands and elements

Each weapon hand and each element has its own training points. A hero's level in one is a curve of the points spent on it that climbs quickly at first and flattens out, and the class's MAX_ rows cap how far training can go. The +HANDS and +ELEMENTS tables name the eight of each. Leave +ELEMENTS out and the world gets the stock eight: Life, Water, Nature, Earth, Death, Fire, Spirit and Air, in that order, which is also the order every eight-value list uses.

A new hero

At the Well a new soul picks a class, spends twenty ability points, chooses a skin and arrives at the class's start location with its starting gold (StartingGP in config.ini, a thousand unless you say otherwise), items, spells and tokens.

Monsters

One row of +MONSTERS per monster, numbered 1 to 4095. Row 0 is not a monster but a template: its figures are percentages applied to every monster whose own figures are left to the game. A monster has a name, a film strip in monsters/, a look (scale, colour table, transparency), an element and an alignment word, its combat figures, the experience and gold it yields, its level, five abilities, two sounds, an attack path and an AI word.

Leave HP, MP, attack, defence, experience or gold at zero and the game works them out from the level, so a first draft of a monster is just a name, a skin and a level. The alignment word matters more than it looks: the script can count kills by alignment (KM.undead, say), which is how a quest asks for ten of a kind.

/monsterinfo 40 (or a name) prints a monster's row as the game loaded it, and /props edits the table in a window.

Groups and encounters

+GROUPS bundles up to nine monsters that appear together. The Link Editor assigns a group to each link; a fight on the map rolls each member against the link's chance, or spawns all of them if group row 0 says so. Inside a scene the script's FIGHT command names monsters outright, draws a random group from the link with *, or fights the link's usual encounter with no arguments at all.

/dist 3 lists where monsters are placed on map 3, and /dist -1 covers every map and adds the monsters that are placed nowhere. /monsters shows the placements over the map.

Balancing

/class 3 prints a class's figures. /battle pits every class against every other and prints each pairing once; /battle2 prints only the summary and /battle3 the whole blow-by-blow. /doldrum compares the experience needed for each level with what a monster of the same level yields, which shows where levelling will drag. /fight 40 puts monster 40 in front of your test hero right now.

Monster strips and hero skins are described under Skins and Art.