Content generated with AI — it may contain mistakes.

Reference

Placeholders

Every placeholder the plugin registers, group by group, written in the PlaceholderAPI form every one of them takes.

Every placeholder below is written in full, and clicking one copies it.

They are registered through ExyliaLib as one group per module, so the registered name of a home count is homes_count, and PlaceholderAPI reaches a registered name by putting the plugin in front of it. So a scoreboard, a hologram or a chat plugin asks for %exyliasurvivalcore_homes_count%, which is the form this page documents throughout; inside an Exylia plugin's own files the registered name stands on its own, with no plugin in front of it.

The shorter survivalcore identifier is gone: %survivalcore_homes_count% no longer resolves.

A disabled module registers no names

Each module claims its group as it enables. A module turned off in config.yml registers nothing, so its placeholders resolve to nothing at all and the text stays on screen exactly as you wrote it. Turning the module back on and reloading claims them again.

Durations are written out in full — 1h 5m 3s — unless a row says they are short. Money is formatted the way the rest of the plugin formats it.

Homes

PlaceholderDescription
%exyliasurvivalcore_homes_count%Homes the player has set
%exyliasurvivalcore_homes_max%How many they may set, permission included
%exyliasurvivalcore_homes_free%The two above subtracted, never below 0
%exyliasurvivalcore_homes_has_<name>%true / false for one home by name

Warps

PlaceholderDescription
%exyliasurvivalcore_warp_count%Warps that exist
%exyliasurvivalcore_warp_exists_<id>%true / false
%exyliasurvivalcore_warp_cooldown_<id>%Time left, Ready, or N/A for a warp that does not exist

TPA

PlaceholderDescription
%exyliasurvivalcore_tpa_enabled%Whether the player accepts requests at all
%exyliasurvivalcore_tpa_auto_accept%Their auto-accept toggle
%exyliasurvivalcore_tpa_send_confirm%Their confirm-before-sending toggle
%exyliasurvivalcore_tpa_has_request%true / false
%exyliasurvivalcore_tpa_request_from%The name of whoever is waiting on them, or —. The name travels with the request, so a sender on another server is named too
%exyliasurvivalcore_tpa_request_type%tpa or tpa_here, or —

Back

PlaceholderDescription
%exyliasurvivalcore_back_available%Whether /back has somewhere to send them

Random teleport

PlaceholderDescription
%exyliasurvivalcore_rtp_searching%Whether a search is running for this player right now
%exyliasurvivalcore_rtp_worlds%Worlds configured for RTP
%exyliasurvivalcore_rtp_cooldown_<world>%Time left, Ready, or N/A

The <world> is an id out of modules/rtp/config.yml, not a Bukkit world name.

Kits

PlaceholderDescription
%exyliasurvivalcore_kit_cooldown_<id>%Time left, Ready, or N/A for a kit that does not exist
%exyliasurvivalcore_kit_uses_<id>%Uses left, ∞ when unlimited, or N/A

Playtime

PlaceholderDescription
%exyliasurvivalcore_playtime%Total playtime, written out
%exyliasurvivalcore_playtime_seconds%The same, in seconds
%exyliasurvivalcore_playtime_millis%The same, in milliseconds — the unit the stats module samples and its TIME format reads
%exyliasurvivalcore_playtime_hours%The same, in whole hours
%exyliasurvivalcore_playtime_rewards_claimed%Rewards already claimed
%exyliasurvivalcore_playtime_next_reward%The next reward's display name, or —
%exyliasurvivalcore_playtime_next_reward_remaining%Time until it unlocks, Now, or —
Playtime registers the bare group name

%exyliasurvivalcore_playtime% has nothing after the group because the module registers playtime itself, not only playtime_seconds and the rest. Total playtime is the question a board actually asks, and this plugin is the playtime authority, so it answers under the plain word. Anything else it adds lives under playtime_.

Rank ladder

PlaceholderDescription
%exyliasurvivalcore_rankup_rank%Current rank's display name, or a grey None
%exyliasurvivalcore_rankup_rank_id%Its id, or none
%exyliasurvivalcore_rankup_rank_order%Its position on the ladder, 0 with no rank
%exyliasurvivalcore_rankup_next_rank%The next rank's display name, or a green Max rank reached!
%exyliasurvivalcore_rankup_next_rank_id%Its id, or none
%exyliasurvivalcore_rankup_prestige%Prestige level
%exyliasurvivalcore_rankup_can_prestige%yes when prestige is on, the player sits on the last rank and has not reached the prestige cap; no otherwise
%exyliasurvivalcore_rankup_can_rankup%yes / no
%exyliasurvivalcore_rankup_ranks_total%Ranks configured
%exyliasurvivalcore_rankup_requirements_total%Requirements the next rank asks for
%exyliasurvivalcore_rankup_requirements_met%How many of those are already met
%exyliasurvivalcore_rankup_progress_bar%Those two drawn as a bar; full when there is no next rank

Farming

PlaceholderDescription
%exyliasurvivalcore_farming_count_<category>%What the player has farmed in that category
%exyliasurvivalcore_farming_level_<category>%Milestones claimed in it, 0 for an unknown category
%exyliasurvivalcore_farming_total%Every category summed

Statistics

PlaceholderDescription
%exyliasurvivalcore_stats_kills%Kills
%exyliasurvivalcore_stats_deaths%Deaths
%exyliasurvivalcore_stats_kdr%Kills over deaths, two decimals
%exyliasurvivalcore_stats_streak%The streak they are on
%exyliasurvivalcore_stats_best_streak%Their best ever
%exyliasurvivalcore_stats_rank_<stat>%Their position on that stat's board, or N/A
%exyliasurvivalcore_stats_value_<stat>%Their value for it, formatted, or N/A
%exyliasurvivalcore_stats_counter_<key>%A module counter read straight through, as a plain number, 0 when nothing has counted it yet

<stat> is a key from modules/stats/stats.yml. The shipped keys are kills, deaths, best_kill_streak, current_streak, playtime and kdr.

<key> in stats_counter_ is a counter key such as crates.opened or mines.starter.blocks, and it does not have to be declared in stats.yml: a counter exists as soon as something counts it, and the file only decides what the stats screen shows and what is ranked. The key is read case-insensitively.

The stat ids are not the same words as the streak placeholders

%exyliasurvivalcore_stats_streak% and %…_stats_best_streak% above are placeholder names that read the counters directly, and they work. They are not stat ids: inside stats_value_, stats_rank_ and stats_top_* the ids are current_streak and best_kill_streak. So %…_stats_value_streak% answers N/A, and %…_stats_value_current_streak% is the one that works.

current_streak also ships with leaderboard: false, so %…_stats_top_name_1_current_streak% answers with a dash by design.

Leaderboards

%exyliasurvivalcore_stats_top_name_<position>_<stat>%
%exyliasurvivalcore_stats_top_value_<position>_<stat>%

The position comes first on purpose: a stat id may contain underscores and a position may not, so the position is the one argument that can be read on its own. A row nobody occupies resolves to —.

#1 %exyliasurvivalcore_stats_top_name_1_kills% — %exyliasurvivalcore_stats_top_value_1_kills%

Kill streaks

PlaceholderDescription
%exyliasurvivalcore_killstreak_streak%The streak the player is on
%exyliasurvivalcore_killstreak_best%Their best

Bounties

Two groups, because they are two questions. The bounty_ ones name somebody and answer for anybody; the my_ ones are about whoever is reading.

PlaceholderDescription
%exyliasurvivalcore_bounty_total_<player>%What is on their head, formatted
%exyliasurvivalcore_bounty_count_<player>%How many bounties make it up
%exyliasurvivalcore_bounty_has_<player>%true / false
%exyliasurvivalcore_bounty_count_all%Bounties standing on the server
%exyliasurvivalcore_bounty_top_name_<position>%The name at that position, or —
%exyliasurvivalcore_bounty_top_amount_<position>%Its total. Without a position, the biggest bounty on the server
%exyliasurvivalcore_my_bounty_total%What is on the reader's head
%exyliasurvivalcore_my_bounty_count%How many bounties make it up
%exyliasurvivalcore_my_bounty_has%true / false
%exyliasurvivalcore_my_placed_count%Bounties they have placed on others
%exyliasurvivalcore_my_placed_total%What those add up to

<player> is a UUID, or a name ExyliaLib already holds in memory. A name it does not know answers 0 rather than looking it up over the network from inside a placeholder.

Crates

PlaceholderDescription
%exyliasurvivalcore_crate_keys_<id>%Keys the player can spend on that crate: the ones in their inventory plus the balance the plugin holds for them
%exyliasurvivalcore_crate_keys_total%The same count added up over every crate that exists
%exyliasurvivalcore_crate_pity_<id>%Openings left before that crate has to pay its guaranteed tier

Keys count what is carried as well as what is banked because that is the number a player can actually spend, and it is the number the hologram over the crate is written with. A crate id nothing defines answers nothing at all, and so does crate_pity for a crate with no pity threshold set — the placeholder is left on screen rather than reading 0, which would mean the next opening is the guaranteed one.

Mines

PlaceholderDescription
%exyliasurvivalcore_mine_count%Mines enabled
%exyliasurvivalcore_mine_reset_<id>%Time until it resets, or -
%exyliasurvivalcore_mine_reset_seconds_<id>%The same in seconds, -1 when there is no reset
%exyliasurvivalcore_mine_current%The mine the player is standing in, or —
%exyliasurvivalcore_mine_current_id%Its id, or —
%exyliasurvivalcore_mine_time%Seconds they have been inside it, 0 outside

Only classic mines have a reset to count down to: a realistic mine regenerates block by block, so its countdown is - rather than a number that would never arrive.

AFK zones

PlaceholderDescription
%exyliasurvivalcore_afkzone_count%Zones configured
%exyliasurvivalcore_afkzone_in_zone%true / false
%exyliasurvivalcore_afkzone_current%The zone's display name, or —
%exyliasurvivalcore_afkzone_current_id%Its id, or —
%exyliasurvivalcore_afkzone_time%Seconds spent in it, 0 outside
%exyliasurvivalcore_afkzone_next_reward%Seconds until it pays again, 0 outside

Reclaim

PlaceholderDescription
%exyliasurvivalcore_reclaim_available%Whether there is something to claim right now
%exyliasurvivalcore_reclaim_cooldown%Time left, Now, or — when no section applies to them
%exyliasurvivalcore_reclaim_sections%Sections configured

Repair

PlaceholderDescription
%exyliasurvivalcore_repair_cooldown_hand%Time left, or Ready
%exyliasurvivalcore_repair_cooldown_all%Time left, or Ready

Player utilities

PlaceholderDescription
%exyliasurvivalcore_utils_fly%The saved fly toggle
%exyliasurvivalcore_utils_night_vision%The saved night vision toggle

These are the stored toggles, not the live state: what the player chose is what survives a relog, which is what a menu showing the toggle should show.

Player settings

One name per preference, each answering true or false. Every setting is on until the player turns it off, so a player nobody has stored anything for answers true throughout.

PlaceholderDescription
%exyliasurvivalcore_settings_death_messages%Whether other players' death messages reach them
%exyliasurvivalcore_settings_join_leave_messages%Whether join and leave broadcasts reach them
%exyliasurvivalcore_settings_rankup_announcements%Whether somebody reaching a new rank is announced to them
%exyliasurvivalcore_settings_kill_announcements%Whether kill streak broadcasts reach them
%exyliasurvivalcore_settings_bounty_announcements%Whether a bounty placed or claimed is announced to them
%exyliasurvivalcore_settings_crate_announcements%Whether somebody winning a rare crate reward is announced to them
%exyliasurvivalcore_settings_purchase_announcements%Whether somebody claiming a purchase is announced to them
%exyliasurvivalcore_settings_tpa_requests%Whether teleport requests reach them
%exyliasurvivalcore_settings_tpa_auto_accept%Whether a request is accepted without asking
%exyliasurvivalcore_settings_tpa_confirm%Whether sending a request asks for a confirmation

The last three are the same three answers the TPA group gives. They are read straight through to the tpa module rather than stored twice, so a player never has two answers to one question.

Scheduled commands

PlaceholderDescription
%exyliasurvivalcore_scheduledcmds_remaining_<section>%Time until that section runs again, Now, or N/A

This one asks for no viewer: how long until a section runs is the same answer for everybody, so it works in a console-rendered board as well as in a player's.

Economy

PlaceholderDescription
%exyliasurvivalcore_economy_balance%The reader's balance in the default currency, formatted
%exyliasurvivalcore_economy_balance_<currency>%The reader's balance in that currency, formatted
%exyliasurvivalcore_economy_compact_<currency>%The same, short
%exyliasurvivalcore_economy_raw_<currency>%The number alone
%exyliasurvivalcore_economy_name_<currency>%The currency's plural name
%exyliasurvivalcore_economy_symbol_<currency>%Its symbol
%exyliasurvivalcore_economy_top_name_<position>_<currency>%The player at that position of a stored currency's leaderboard, or —
%exyliasurvivalcore_economy_top_amount_<position>_<currency>%Their balance, formatted in that currency; a formatted zero when nobody holds the position

The balances work for any currency ExyliaLib knows, stored here or not — vault, points — and leaving the currency off reads the default one. balance, compact and raw read the viewer, so text rendered with no player shows them empty; name and symbol ask for no viewer.

For the leaderboards, without a currency the default currency is ranked and without a position the first place is read. Only a stored currency has a leaderboard; vault, named or left as the default, ranks the stored currency published to Vault when there is one.

Every one reads memory — a loaded balance, the balance cache or the cached leaderboard — never the database. See Economy.

The balances moved here from ExyliaLib

Until ExyliaSurvivalCore v1.2.2 and ExyliaLib 1.162.1 the balance names were ExyliaLib's, written %exylialib_economy_balance_<currency>%. ExyliaLib registers none any more, so that form stays on screen as written. Change it to %exyliasurvivalcore_economy_balance_<currency>%.

Boosters

PlaceholderDescription
%exyliasurvivalcore_boosters_money%The reader's money multiplier, their own boosters and the global ones together — 1, 1.5, 2.25
%exyliasurvivalcore_boosters_xp%The same for experience
%exyliasurvivalcore_boosters_active%The reader's boosters running right now
%exyliasurvivalcore_boosters_stored%The reader's boosters kept but not started yet
%exyliasurvivalcore_boosters_global_money%The money multiplier of the global boosters alone
%exyliasurvivalcore_boosters_global_xp%The same for experience
%exyliasurvivalcore_boosters_global_left%Time left on the first running global booster, or —

The three global_ ones ask for no viewer. Every running booster of that type counts, whatever payout source it is limited to, and they are combined by the module's stacking rule and capped at its maximum multiplier. See Economy.

Market

PlaceholderDescription
%exyliasurvivalcore_market_listings%Listings for sale on the market
%exyliasurvivalcore_market_value%What all of them add up to, formatted as money
%exyliasurvivalcore_market_mine%Listings the reader has up

Auctions

PlaceholderDescription
%exyliasurvivalcore_auctions_running%Auctions running
%exyliasurvivalcore_auctions_mine%Auctions the reader is selling
%exyliasurvivalcore_auctions_leading%Auctions where the reader holds the top bid

Orders

PlaceholderDescription
%exyliasurvivalcore_orders_mine%Buy orders the reader has open
%exyliasurvivalcore_orders_ready%Items delivered to the reader's orders and waiting to be collected
%exyliasurvivalcore_orders_open_total%Open orders on the board

See Market for the market, auctions and orders.

Rewards

PlaceholderDescription
%exyliasurvivalcore_rewards_ready%Rewards the reader can claim right now
%exyliasurvivalcore_rewards_cooldown_<id>%Time until that reward can be claimed again, Ready, or N/A for a reward that does not exist
%exyliasurvivalcore_rewards_streak_<id>%The reader's streak on it, or N/A
%exyliasurvivalcore_rewards_claims_<id>%Claims left, ∞ when unlimited, or N/A

Votes

PlaceholderDescription
%exyliasurvivalcore_votes_total%Votes the reader has cast
%exyliasurvivalcore_votes_streak%Their daily streak as it stands today: 0 once a whole day passed without a vote
%exyliasurvivalcore_votes_best_streak%Their best streak
%exyliasurvivalcore_votes_voted_today%true / false
%exyliasurvivalcore_votes_party_count%Votes counted towards the vote party
%exyliasurvivalcore_votes_party_target%Votes the party needs
%exyliasurvivalcore_votes_party_left%The two above subtracted, never below 0

The reader's own numbers answer 0 (or false) until their row has been read on join. The three party_ ones ask for no viewer. See Rewards and votes.

Missions

PlaceholderDescription
%exyliasurvivalcore_missions_daily_done%The reader's daily missions completed or claimed
%exyliasurvivalcore_missions_daily_total%Daily missions they have
%exyliasurvivalcore_missions_weekly_done%The same for weekly missions
%exyliasurvivalcore_missions_weekly_total%Weekly missions they have
%exyliasurvivalcore_missions_claimable%Missions complete and not yet claimed
%exyliasurvivalcore_missions_daily_resets%Time until the daily missions reset, short — 3h
%exyliasurvivalcore_missions_weekly_resets%The same for the weekly ones

All of them read what is already in memory, so they are safe on a board that refreshes every tick.

Seasons

PlaceholderDescription
%exyliasurvivalcore_seasons_left_<season>%Time until that season ends, or nothing for an unknown season
%exyliasurvivalcore_seasons_value_<season>%The reader's score in it, written the way the season counts, or 0
%exyliasurvivalcore_seasons_position_<season>%Their place on its board, 0 when they are not on it
%exyliasurvivalcore_seasons_top_name_<position>_<season>%The player at that place, or —
%exyliasurvivalcore_seasons_top_value_<position>_<season>%Their score, or —

<season> is a season id out of modules/seasons/seasons.yml. As with the stats leaderboards, the position comes before the id. See Missions and seasons.

Protections

Every one of these reads the viewer. Apart from count, max and effects_active, they are about the protection the player is standing in, and answer an empty text outside one.

PlaceholderDescription
%exyliasurvivalcore_protections_count%Protections the player owns
%exyliasurvivalcore_protections_max%How many they may own, permission included
%exyliasurvivalcore_protections_name%The protection's name
%exyliasurvivalcore_protections_owner%Its owner's name
%exyliasurvivalcore_protections_role%The player's role in it: owner, the id of the role they hold, or visitor
%exyliasurvivalcore_protections_lives%Lives it has left; empty while raids are off
%exyliasurvivalcore_protections_max_lives%Lives it can hold; empty while raids are off
%exyliasurvivalcore_protections_raid_state%Its raid state, in the words messages.yml gives it; empty while raids are off
%exyliasurvivalcore_protections_bank%What its bank holds; empty while banks are off
%exyliasurvivalcore_protections_upkeep_cost%What each upkeep payment costs; empty while upkeep is off
%exyliasurvivalcore_protections_upkeep_due%Time until the next payment, short; the overdue text when it is late; time until it is lost when abandoned; - when upkeep has never run for it
%exyliasurvivalcore_protections_sale_price%Its price when it is listed for sale, formatted in the listing's currency
%exyliasurvivalcore_protections_level%Its level
%exyliasurvivalcore_protections_subregion%The plot the player stands in; empty outside every plot or while subregions are off
%exyliasurvivalcore_protections_rent_tenant%Who rents the plot the player stands in — or the whole protection, outside every plot
%exyliasurvivalcore_protections_rent_expiry%Time left on that rent, short
%exyliasurvivalcore_protections_warp_rating%The average rating of its warp, one decimal
%exyliasurvivalcore_protections_warp_visits%Visits its warp has had
%exyliasurvivalcore_protections_effects_active%The member perks active on the player right now, comma-separated, empty when none

See Protections, Protection raids and Protection economy.

An id with an underscore is fine

Everything after the name is put back together before it is read, so %exyliasurvivalcore_farming_count_sugar_cane%, %exyliasurvivalcore_kit_cooldown_starter_kit% and %exyliasurvivalcore_warp_cooldown_pvp_arena% all resolve. In %exyliasurvivalcore_stats_top_name_<position>_<stat>%, %exyliasurvivalcore_stats_top_value_<position>_<stat>%, %exyliasurvivalcore_seasons_top_name_<position>_<season>% and %exyliasurvivalcore_seasons_top_value_<position>_<season>% the position is read first and the id is everything after it.

The one exception is the currency in the economy group. In %exyliasurvivalcore_economy_top_name_<position>_<currency>% and %exyliasurvivalcore_economy_top_amount_<position>_<currency>% only the word straight after the position is read, and in balance, compact, raw, name and symbol only the first word after the name, so a currency id with an underscore in it does not resolve there.

Something missing on this page? Tell us on Discord