Conversions

Currency conversions define exchange rates between two currencies. They are used both for manual currency exchange and for automatic overflow conversion.

Creating a Conversion Entry

Open the Spark Editor, go to Currency > Conversions and click Create New.

Each conversion entry defines:

Field
Description

Display Name

Label for this conversion (e.g., "Copper to Silver").

Source Currency

The currency to convert from.

Target Currency

The currency to convert to.

Source Amount

How much of the source currency is needed for one conversion (default: 100).

Target Amount

How much of the target currency is received per conversion (default: 1).

Example: To set up "100 Copper = 1 Silver", set Source Currency to Copper, Target Currency to Silver, Source Amount to 100, and Target Amount to 1.

How Conversions Are Used

Automatic Overflow Conversion

When a currency entry has a Max Amount and a Conversion Entry assigned, Spark automatically converts excess currency using that conversion whenever the maximum would be exceeded.

For example, if Copper has a max of 100 and a conversion of 100 Copper → 1 Silver, then earning 150 Copper when you already have 50 would result in: 100 Copper converted to 1 Silver, leaving 50 Copper remaining.

Conversion Chains

If the target currency also has a max amount and its own conversion, the overflow cascades. For example:

  • 100 Copper → 1 Silver (Copper max: 100)

  • 100 Silver → 1 Gold (Silver max: 100)

Earning a large amount of Copper could cascade through Silver and into Gold. Spark limits chain depth to 10 steps to prevent infinite loops.

Manual Conversion

Conversions can also be triggered manually through the currency system. This is useful for shops or exchange NPCs where the player can convert currencies on demand.

Conversion Validation

A conversion entry is valid when both the source and target currencies are assigned and both amounts are greater than zero. Invalid conversions are ignored by the system.

Last updated

Was this helpful?