DUXPLIMA Documentation

Placeholders

Every placeholder the expansion registers, per farmer, product and statistic.

uxmFarmer registers a PlaceholderAPI expansion under the identifier uxmfarmer. Every placeholder identifies a farmer by its UUID:

%uxmfarmer_<uuid>_<what>%

The UUID is the farmer's, not the player's — get it from /uxmfarmer uuidof <player>, /uxmfarmer select, or /uxmfarmer nearfarmers. An unknown UUID returns an empty string.

Inside menu and hologram lore the plugin's own <uuid> tag is substituted first, which is why the shipped files are written as:

<papi:'uxmfarmer_<uuid>_amount_GOLD_NUGGET'>

That form works in any lore the plugin draws for a specific farmer, and needs no hard-coded UUID.

Farmer

PlaceholderReturns
..._ownerOwner's name, or their UUID if the name is unknown
..._regionThe region id the farmer belongs to
..._sales_statusWhether Auto Sell is on, as configured text
..._collecting_statusWhether natural drop collection is on
..._total_productsTotal units across every product
..._stored_xpXP currently held

sales_status and collecting_status return the strings from your language file, so they read as "Enabled" / "Disabled" in whatever language you are running.

Per product

<material> is a Bukkit material name.

PlaceholderReturns
..._amount_<material>Units in storage
..._capacity_<material>Capacity at the current level
..._level_<material>Current level
..._sellable_<material>Whether it is set to sell
..._collecting_<material>Whether it is being collected

An unknown material returns 0 for the numeric ones and the disabled text for the others.

Production

PlaceholderReturns
..._production_<material>_rate_minuteUnits per minute
..._production_<material>_rate_hourlyProjected units per hour
..._production_<material>_rate_dailyProjected units per day
..._production_<material>_income_minuteMoney per minute
..._production_<material>_income_hourlyProjected money per hour
..._production_<material>_income_dailyProjected money per day

The hourly and daily figures are extrapolated from the per-minute one, so they are projections and move as the farm does. Income uses the live price for the player reading the placeholder, which means two players can see different numbers for the same farmer — correctly, because their tax discounts differ.

All-time statistics

PlaceholderReturns
..._all_time_collectedUnits collected, ever
..._all_time_collected_xpXP collected, ever
..._all_time_soldUnits sold
..._all_time_sold_xpXP sold
..._all_time_earnedMoney earned from products
..._all_time_earned_xpMoney earned from XP
..._all_time_taxTotal tax paid
..._all_time_tax_productTax paid on products
..._all_time_tax_xpTax paid on XP

These are totals and do not move backwards, which makes them the right thing to put on a leaderboard or a scoreboard. all_time_tax is all_time_tax_product plus all_time_tax_xp.

Money values are formatted with the plugin's money formatter, counts with its number formatter — so they arrive readable and do not need a math expansion to make them presentable.

Using placeholders as conditions

Level requirements and conversion requirements take any PlaceholderAPI placeholder, compare its output to a string, and gate the purchase on the result:

requirements:
  "vip":
    display: "<green>VIP Rank"
    condition: "%vault_hasgroup_VIP%"
    required-output: "yes"

uxmFarmer's own placeholders work here too — a level that requires the player's farmer to already hold a certain amount of another product, for example.