Skip to content

Material 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 thing to chunk, decal to 2, defFloor/defBlock to 1, ramp to 6, hardness to 1, chance to 1000, weight and value to 100, quality to 1 and dice to 100.

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
idintUnique numeric identifier for the material. If matching a vanilla entry or another mod's entry ID, the last sheet to load will override the others. Make this very unique and big enough so it doesn't overlap.
aliasstringMaterial alias, used for referencing in other sheets (e.g. Thing's defMat column).
name_JPstringDisplay name in Japanese.
namestringDisplay name in English. Other languages use SourceLocalization.
categorystringMaterial category. Vanilla uses gem, soil, wood, ore, fiber, rock, crystal, water, grass, skin, organic and bone. Note that metal and leather are not categories — they are values of the groups column.
tagstring[]Tags for special behaviors. Use addColorMain(RRGGBBAA) and addColorAlt(RRGGBBAA) to define custom material colors. See Custom Material below.
thingstringAssociated Thing ID for this material when dismantled.
goodsstring[]Consider this unused.
mineralsstring[]Consider this unused.
decalintDecal/blood overlay id. See Decal
decayintDecay rate when item is made of this material.
grassintConsider this unused.
defFloorintDefault SourceFloor tile ID.
defBlockintDefault SourceBlock tile ID.
edgeintConsider this unused.
rampintRamp block tile ID.
idSoundstringImpact sound ID. Custom sounds are placed in Sound/Material/ folder.
soundFootstringFootstep sound ID. Custom sounds are placed in Sound/Footstep/ folder.
hardnessintMaterial hardness; affects the tools needed to mine or process this material.
groupsstring[]Material tier group (e.g. metal, leather).
tierintMaterial tier in the tier group.
chanceintRandom chance weight within the tier group.
weightintMaterial self weight.
valueintMaterial value.
qualityintMaterial quality modifier.
atkintAttack bonus provided when used as equipment material.
dmgintDamage bonus provided when used as equipment material.
dvintDV bonus provided when used as equipment material.
pvintPV bonus provided when used as equipment material.
diceintDice dimension modifier for damage calculations.
bitsstring[]Proof against fire or acid.
elementselementsSourceElement bonuses when used as equipment material.
altNamestring[]Unique equipment name prefixes.
altName_JPstring[]Unique equipment name prefixes in Japanese.

Custom Material

By default, the game cannot load custom materials because there is no color mapping for them. To make your custom material display properly, you must define its colors in the tag column.

Color Tags

Use addColorMain(color_hex) and addColorAlt(color_hex) in the tag column of your material row to define the main and alternate colors of your material.

The color format is RRGGBBAA (8 hex digits):

  • RR: Red (00ff)
  • GG: Green (00ff)
  • BB: Blue (00ff)
  • AA: Alpha/opacity (00ff)

Migrating From CWL

CWL specs used AddCol_Main and addCol_Alt, which will still function the same as before. We recommend switching to the new format.

For example:

addColorMain(ffff00ff),addColorAlt(ff0000ff)

This sets the main color to yellow (fully opaque) and the alternate color to red (fully opaque).

Color Format

The color hex string is case insensitive and does not begin with # or 0x.

Decal

Index starts at 2 (top-left). Each row contains 2 groups of decals with separate number indices, e.g. the 1st row is 2 and 3, 2nd row is 4 and 5.

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.