Skip to main content

Listing Generation

How the Random Auction Addon decides when to post listings and how many.


Schedulingโ€‹

Listings are posted at random intervals between a configurable minimum and maximum (in minutes). This creates an organic, unpredictable marketplace cadence rather than listings appearing on a fixed timer.

generation:
interval-min: 5 # earliest the next run can fire (minutes)
interval-max: 15 # latest the next run can fire (minutes)

After each run completes, a new random delay is drawn from this range before the next run fires.


Minimum Online Playersโ€‹

Generation only runs when a minimum number of players are online. This prevents bot listings from accumulating while no players are active to see or buy them.

generation:
min-online-players: 2

Set to 0 or 1 to always generate regardless of player count.


Player-Count Scalingโ€‹

The number of listings created per run scales automatically with online players:

Scale LevelTriggerListings per Run
LowBelow low-threshold playerslow-count
Mediummedium-threshold rangemedium-count
Highhigh-threshold+ playershigh-count

All thresholds and counts are fully configurable. This ensures the auction house is modestly stocked during quiet hours and well-populated during peak times.


Peak Hour Multiplierโ€‹

During configured peak hours, the listing count for that run is multiplied by the peak-hour multiplier:

generation:
peak-hours:
- "18:00-22:00"
peak-hour-multiplier: 2.0

A multiplier of 2.0 doubles the normal scaled count. Multiple peak-hour windows can be configured.


Caps and Limitsโ€‹

SettingDescription
max-listings-per-runHard upper bound on listings created in any single run, regardless of scaling or multipliers
max-bot-listingsGlobal cap on total active bot-owned listings in the auction house; generation is skipped entirely when this is reached

Per-Item Cooldownโ€‹

After a specific material is listed, that material enters a cooldown period before it can be listed again. This prevents the auction house from filling up with identical items.

generation:
cooldown-per-item: 30 # minutes

Material Poolsโ€‹

Pool Selectionโ€‹

On each run, a material pool is selected using weighted probability:

PoolDefault WeightTypical Contents
CommonHighFood, basic crafting materials
RareLowHarder-to-obtain drops
OresMediumIron, gold, diamond, netherite ore variants
BlocksMediumBuilding and decorative blocks
EnchantedLowItems intended to receive enchantments
PotionsMediumNormal, splash, and lingering potions

Higher weight values mean that pool is selected more often relative to the others.

Per-Pool Settingsโ€‹

Each pool is independently configurable:

SettingDescription
Pool weightProbability of this pool being chosen
quantity-ranges.min/maxMin/max item stack size for listings from this pool
listing-durations.min/maxMin/max time (minutes) a listing from this pool stays active
items listMaterials that can be selected from this pool

Potion Typesโ€‹

Potions pool items are drawn from a separate, configurable list of potion types covering:

  • Regular potions (strength, speed, healing, fire resistance, etc.)
  • Splash potions
  • Lingering potions

Custom Itemsโ€‹

When use-custom-items: true is set, pool item lists can include custom item IDs from:

  • ItemsAdder โ€” ia:<namespace>:<id>
  • Oraxen โ€” oraxen:<id>
  • Nexo โ€” nexo:<id>
  • MMOItems โ€” mmoitems:<type>:<id>

Dimension-Specific Itemsโ€‹

Two optional extra item sets can be added to the generation pool:

SetToggle KeyDescription
Nether itemsnether-items.enabledNether-specific materials (e.g. Nether Quartz, Magma Cream, Blaze Rods)
End itemsend-items.enabledEnd-specific materials (e.g. Chorus Fruit, Dragon's Breath, Purpur)

See Alsoโ€‹