Skip to content

Zone Sheet

When making source sheets, you must copy the first 3 rows of the official source sheet completely and start your data at the 4th row.

About columns, empty rows and empty cells

Missing columns are silently filled with empty values with no error at all — so copy the whole official header row and do not delete columns or change their order.

A row with an empty id aborts the rest of the sheet, every row after it is skipped, again with no warning. Do not use blank rows to group your data unless intentionally.

An empty cell is not an empty value — the game falls back to the default on row 3. This sheet defaults type to Zone, LV to 1, chance to 100, idBiome to Plain, dev to 0 and image to default.

You can change your default row 3 values to apply it to all other rows. Your data should start at the 4th row.

Sheet Columns

ColumnTypeDescription
idstringUnique identifier for the zone. If the ID matches a vanilla entry's or another mod's entry's ID, the last sheet to load will override the others. This value cannot contain spaces — use snake_case style if needed, e.g. mymod_zone_funk_house.
parentstringThe parent zone ID.
name_JPstringZone display name in Japanese.
namestringZone display name in English. For other languages, use SourceLocalization.
typestringZone C# type name. This can be an existing Zone type or a Zone subclass from your DLL. To customize it via code, refer to Custom Zone Type below.
LVintDanger level.
chanceintRandom site spawn chance when tag contains random.
factionstringFaction ID this zone belongs to.
valueintZone value used in the home ranking list.
idProfilestringZone profile ID; determines how the map is generated.
idFilestring[]Map file name placed in the Maps folder. If empty, a random map will be used.
idBiomestringBiome type.
idGenstringDungeon generator type. Unused.
idPlayliststringPlaylist. CWL is required for custom playlists currently.
tagstring[]A comma-separated list of tags applied to this zone. See Tag Reference below for common tags.
costintUnused.
devintDefault zone development level.
imagestringName of the picture shown in the zone selection UI, taken from the game's built-in images. Blank means default. Custom images are not supported yet.
posint[]Zone position on the world map, formatted as x,y,icon ID. To find the icon ID, see World Icon ID below.
questTagstring[]Possible quest types in this zone. Ignored when the zone belongs to the player's faction.
textFlavor_JPstringFlavor text shown when entering the zone, in Japanese.
textFlavorstringFlavor text shown when entering the zone, in English. For other languages, use SourceLocalization.
detail_JPstringDescription of the zone, in Japanese.
detailstringDescription of the zone, in English. For other languages, use SourceLocalization.

Tag Reference

Common tags used in the tag column:

TagDescription
addMapAutomatically spawn this map into the world.
returnAllow this zone to be used as a return location, even if it is not the player's home.
techUse tech-style boxes for merchant inventory backgrounds.
lightEnable lighting in this zone, even if it is not a player faction zone.
randomAllow this zone to appear as a random site on the world map.
closedMark this zone as closed / inaccessible.

World Icon ID

The pos column uses x,y,icon ID format. The third value icon ID is the numeric ID of a world-map icon from the game's built-in tileset. Hover over the tileset below to see each icon's ID, then use it in your pos column.

Custom zone icons from external sprites are not yet supported.

Tileset Viewer

In addition, when determining the x,y coordinates of a zone, you can use the console command mod.get_pos to get the world map coordinates where the current player character is located.

Custom Zone Type

You can use a custom zone type defined in a C# DLL.

Example:

cs
public class Zone_MyFunkHouse : Zone_Civilized
{
    // overrides
}

The base class must be derived from Zone, and you can freely choose which Zone type to use.

Creating a Map!

noa's original quote:

All map creation—such as placing NPCs, furniture, and laying out blocks—is done entirely within the in-game build mode (using dev mode). Once the map is complete, I export it using the F1 key's "Export Map" function. Then, in the Zone sheet of SourceGame.xlsx, I copy an existing zone entry, modify fields like id, name, type, and pos, and set the idFile to the filename of the map I just exported. Basically, that’s all I do to add a new map to the game.

You can enter the dev mode by console command mod.elin_dev or launching the game with -dev argument.

This project is an unofficial documentation site and is not affiliated with, endorsed by, or associated with Elin or Lafrontier / Noa. All trademarks are the property of their respective owners.