Skip to main content

Choose farming readings

A HUD displays data; it does not create it. Choose a source for each reading before deciding how it should look.

ReadingSourceWhat to handle
Current BPSFarming snapshot.bpsDisplay only when snapshot.complete is true
Averaging durationsnapshot.window_secondsDo not hard-code a different window label
Current activitysnapshot.phaseStartup, turning and recovery are not harvesting
Section and passsection_name, section, passStartup can omit them
Action totalsblocks, session_bps, elapsed_secondsRestart when a new native harvest action starts
Bazaar/NPC estimateshexis.profit.summary()Register inventory tracking; missing prices are not zero prices
Comparable past runshexis.profit.history()Compare the same crop, valuation and context
Farming level and ETAhexis/skyblock/skillsNo ETA until enough valid progress is available

BPS is not item income

A broken crop can produce several items. Fortune and compacted inventory forms must not inflate the BPS reading. Native BPS counts local block destruction; it is prediction, not confirmation that the server accepted each break.

The clocks have different scopes

An optional activity ends one harvest action and starts another after a validated return. BPS and break totals restart for the new action. The default Lua presentation keeps profit and skill tracking across the whole script session.

Default or custom presentation

Omit presentation to use the default renderer when the Lua definition contains product metadata. That metadata includes name, products, quantity_groups and optional byproducts. It tells the profit tracker what to count and how to normalize compacted items.

Use presentation = require("hud") to replace the renderer, or false to omit it. Replacing the renderer does not automatically initialize default profit tracking. A custom renderer that uses profit must request the capability and register the items it intends to track.

For a full example, see the bundled farming sources in the script catalog. For a small renderer you can copy, see Customize a farming HUD.

Keep warnings separate from presentation

Native farming reports zero/low harvest health through the safety service even without a renderer. Changing a HUD label or color must not change whether the action stops. Configure health in the recipe or its exposed settings instead.

A dash means a reading is unavailable. Zero means a valid measurement found nothing. Preserve that distinction for BPS, profit and skill progress alike.