Skip to content

Forge History

Forge stores per-player forging records used to count recipe usage, drive the quality pity counter, and back the forging placeholders.

Configuration

History settings are under history in config.yml:

yaml
history:
  enabled: true
  auto_save: true
  # Auto-save interval; 6000 ticks = 5 minutes
  save_interval: 6000
FieldTypeDefaultDescription
enabledbooleantrueWhether forge history is enabled.
auto_savebooleantrueWhether player data is periodically saved.
save_intervalinteger6000Auto-save interval in ticks. 6000 ticks is about 5 minutes.

When either enabled or auto_save is false, the periodic auto-save task is not scheduled.

Storage location

Player data is stored in plugins/EmakiForge/data/<player-uuid>.yml, one file per player.

Recorded data

Each player file records the following per recipe id:

DataPurpose
Player UUIDFile name and the uuid field inside the file.
Recipe idGroups forging data per recipe.
Craft countBacks %emakiforge_craft_count_<recipe_id>% and the total count.
Last craft timeThe last_crafted_at field, backing %emakiforge_last_crafted%.
Pity counterQuality pity streak, tracked per player and recipe.

Relationship with quality pity

The pity counter is stored in the player data file, so the two are directly related:

  • Each forge whose quality is below the pity minimum increases the counter by 1.
  • Once the counter reaches the threshold, pity triggers and the counter resets.
  • See Quality for pity conditions and thresholds.

Recommendations

  • Enable both enabled and auto_save on production servers.
  • Increase save_interval on high-concurrency servers if disk writes are too frequent.
  • Archive the data/ folder after seasons or events to analyze recipe output.

Troubleshooting

  • Data not saved: check enabled, auto_save, and permissions on the data/ folder.
  • When player data fails to load, that session stays read-only to protect the existing file and a warning is logged to the console.
  • Unexpected pity behavior: check the current counter with %emakiforge_guarantee_<recipe_id>%, then compare recipe-level and global pity settings.
  • Data issues after reload: verify the auto-save interval, and stop the server to let data flush before maintenance if needed.