- Tested Minecraft Versions:
- 1.8
- 1.9
- 1.10
- 1.11
- 1.12
- 1.13
- 1.14
- 1.15
- 1.16
- 1.17
- 1.18
- 1.19
- Source Code:
- https://github.com/PlaceholderAPI/PlaceholderAPI
PlaceholderAPI is a plugin for Spigot servers that allows server owners to display information from various plugins with a uniform format.
Support for specific plugins are provided either by the plugin itself or through expansions. The expansions may be downloaded in-game through the PAPI Expansion Cloud. There are currently over 230+ expansions that support a wide variety of plugins, such as Essentials, Factions, LuckPerms, and Vault. If you're a developer and you want to add support for PlaceholderAPI in your plugin please head to our API Usage page for more information.
PlaceholderAPI has been downloaded over 1,000,000 times and has been used concurrently on over 40,000 servers, which makes it a must-have for a server of any type or scale.
The config.yml contains the core plugin customization settings as well as a section specifically for expansions that wish to add configurable options too.
Any settings an expansion may allow you to change will be added to the config.yml when that specific expansion is loaded.
Code (YAML):
# PlaceholderAPI
# Version: 2.11.0
# Created by: extended_clip
# Contributors: https://github.com/PlaceholderAPI/PlaceholderAPI/graphs/contributors
# Issues: https://github.com/PlaceholderAPI/PlaceholderAPI/issues
# Expansions: https://api.extendedclip.com/all/
# Wiki: https://github.com/PlaceholderAPI/PlaceholderAPI/wiki
# Discord: https://helpch.at/discord
# No placeholders are provided with this plugin by default.
# Download placeholders: /papi ecloud
check_updates: true
cloud_enabled: true
cloud_sorting: "name"
cloud_allow_unverified_expansions: false
boolean:
'true': 'yes'
'false': 'no'
date_format: MM/dd/yy HH:mm:ss
debug: false
expansions:
javascript:
debug: false
github_script_downloads: true
engine: javascript
player:
ping_color:
medium: '&e'
high: '&a'
low: '&c'
server:
tps_color:
high: '&a'
low: '&c'
medium: '&e'
server_name: A Minecraft Server
![]()
Code (YAML):
permissions:
placeholderapi.*:
description: "Ability to use all PAPI commands"
children:
placeholderapi.admin: true
placeholderapi.ecloud.*: true
placeholderapi.admin:
description: "Ability to use all PAPI commands"
children:
placeholderapi.help: true
placeholderapi.info: true
placeholderapi.list: true
placeholderapi.parse: true
placeholderapi.reload: true
placeholderapi.version: true
placeholderapi.register: true
placeholderapi.unregister: true
placeholderapi.updatenotify: true
placeholderapi.ecloud.*:
description: "Ability to use all PAPI ecloud commands"
children:
placeholderapi.ecloud: true
placeholderapi.ecloud.info: true
placeholderapi.ecloud.list: true
placeholderapi.ecloud.clear: true
placeholderapi.ecloud.toggle: true
placeholderapi.ecloud.status: true
placeholderapi.ecloud.update: true
placeholderapi.ecloud.refresh: true
placeholderapi.ecloud.download: true
placeholderapi.ecloud.placeholders: true
placeholderapi.help:
default: "op"
description: "Allows you to view the list of PAPI commands"
placeholderapi.info:
default: "op"
description: "Allows you to view expansion information"
placeholderapi.list:
default: "op"
description: "Allows you to list active expansions"
placeholderapi.ecloud:
default: "op"
description: "Allows you to access PAPI eCloud"
placeholderapi.parse:
default: "op"
description: "Allows you to parse placeholders"
placeholderapi.reload:
default: "op"
description: "Allows you to reload PAPI and its configuration"
placeholderapi.version:
default: "op"
description: "Allows you to view the version of PAPI installed"
placeholderapi.register:
default: "op"
description: "Allows you to register expansions"
placeholderapi.unregister:
default: "op"
description: "Allows you to unregister expansions"
placeholderapi.updatenotify:
default: "op"
description: "Notifies you when there is a PAPI update"
placeholderapi.ecloud.info:
default: "op"
description: "Allows you to view cloud expansion information"
placeholderapi.ecloud.list:
default: "op"
description: "Allows you to list eCloud expansions"
placeholderapi.ecloud.clear:
default: "op"
description: "Allows you to clear the local eCloud expansion cache"
placeholderapi.ecloud.toggle:
default: "op"
description: "Allows you to toggle/enable/disable the eCloud manager"
placeholderapi.ecloud.status:
default: "op"
description: "Allows you to view the status of eCloud expansions"
placeholderapi.ecloud.update:
default: "op"
description: "Allows you to update registered eCloud expansions"
placeholderapi.ecloud.refresh:
default: "op"
description: "Allows you to refresh the local eCloud expansion cache"
placeholderapi.ecloud.download:
default: "op"
description: "Allows you to download an expansion from the eCloud"
placeholderapi.ecloud.placeholders:
default: "op"
description: "Allows you to view the placeholders of a eCloud expansion"
Parse Commands
/papi bcparse <player|me> <string>
/papi cmdparse <player|me> <string>
/papi parse <player|me> <string>
/papi parserel <player> <player> <string>
eCloud Commands
/papi ecloud clear
/papi ecloud disable
/papi ecloud download <expansion> [version]
/papi ecloud enable
/papi ecloud info <expansion> [version]
/papi ecloud list <all|<author>|installed>
/papi ecloud placeholders <expansion>
/papi ecloud refresh
/papi ecloud status
Expansion Commands
/papi info <expansion>
/papi list
/papi register <jar file>
/papi unregister <jar file>
Utility Commands
/papi dump
/papi reload
Some Useful Links
Plugins using PAPI - API Usage - Placeholder List - Wiki
If you enjoy this completely free and powerful resource,
please be kind enough to leave a like and review!
This plugin utilizes bStats to collect anonymous statistics
https://bstats.org/plugin/bukkit/PlaceholderAPI

PlaceholderAPI 2.11.1
A resource that allows information from your favorite plugins be shown practically anywhere!
-
FrkNB, Myouren, Lychers and 147 others like this.
Recent Updates
- 2.11.1 - %s Bug Fix Dec 27, 2021
- 2.11.0 Adds 1.18 support, new expansion features, dependencies updates and more Dec 20, 2021
- 2.10.10 Adds 1.17 Support, Quality of life changes and more Jul 10, 2021
Recent Reviews
-
loeb_js
- 5/5,
aasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsaaasdadsadsa
-
kocy
- 5/5,
Dont even bother this review below, Aternos is free and its their issues to tell people about it.
PAPI is essentials to most server, due to Placeholder feature, although random times, the PAPI suddenly just don`t like load certain placeholder. -
AREA_
- 3/5,
Why Aternos blocks this plugin? Please answer it!
Every time I try to recommend this plugin to aternosa, I get this:
This plugin offers features that can be used to abuse our system. -
mrpongi
- 5/5,
I have this issue can u help me?
[13:26:03] [pool-25-thread-1/WARN]: java.lang.NullPointerException: Cannot invoke "me.clip.placeholderapi.PlaceholderAPIPlugin.getLocalExpansionManager()" because the return value of "me.clip.placeholderapi.PlaceholderAPIPlugin.getInstance()" is null
[13:26:03] [pool-25-thread-1/WARN]: at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:71)
[13:26:03] [pool-25-thread-1/WARN]: at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:98)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.placeholder.PlaceholderAPIHook.replacePlaceholders(Hooks.kt:18)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.placeholder.PlaceholderServiceText.replaceTextFromHooks(PlaceholderServiceText.kt:171)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.placeholder.PlaceholderServiceText.replaceText(PlaceholderServiceText.kt:158)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.features.PlayerListServiceSpigot.setHeader(PlayerListServiceSpigot.kt:126)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.features.PlayerListServiceSpigot$createHeaderSendableAnimation$4.invoke(PlayerListServiceSpigot.kt:82)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.features.PlayerListServiceSpigot$createHeaderSendableAnimation$4.invoke(PlayerListServiceSpigot.kt:81)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.model.animation.PartBasedSendableAnimation.update(PartBasedSendableAnimation.kt:90)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.model.animation.PartBasedSendableAnimation$update$2.invoke(PartBasedSendableAnimation.kt:97)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.model.animation.PartBasedSendableAnimation$update$2.invoke(PartBasedSendableAnimation.kt:97)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.task.SchedulerServiceAsync.scheduleRaw$lambda-2(SchedulerServiceAsync.kt:44)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.lang.Thread.run(Thread.java:831)
[13:26:03] [pool-25-thread-1/WARN]: java.lang.NullPointerException: Cannot invoke "me.clip.placeholderapi.PlaceholderAPIPlugin.getLocalExpansionManager()" because the return value of "me.clip.placeholderapi.PlaceholderAPIPlugin.getInstance()" is null
[13:26:03] [pool-25-thread-1/WARN]: at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:71)
[13:26:03] [pool-25-thread-1/WARN]: at me.clip.placeholderapi.PlaceholderAPI.setPlaceholders(PlaceholderAPI.java:98)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.placeholder.PlaceholderAPIHook.replacePlaceholders(Hooks.kt:18)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.placeholder.PlaceholderServiceText.replaceTextFromHooks(PlaceholderServiceText.kt:171)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.placeholder.PlaceholderServiceText.replaceText(PlaceholderServiceText.kt:158)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.features.PlayerListServiceSpigot.setHeader(PlayerListServiceSpigot.kt:126)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.features.PlayerListServiceSpigot$createHeaderSendableAnimation$4.invoke(PlayerListServiceSpigot.kt:82)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.features.PlayerListServiceSpigot$createHeaderSendableAnimation$4.invoke(PlayerListServiceSpigot.kt:81)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.model.animation.PartBasedSendableAnimation.update(PartBasedSendableAnimation.kt:90)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.model.animation.PartBasedSendableAnimation$update$2.invoke(PartBasedSendableAnimation.kt:97)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.model.animation.PartBasedSendableAnimation$update$2.invoke(PartBasedSendableAnimation.kt:97)
[13:26:03] [pool-25-thread-1/WARN]: at io.puharesource.mc.titlemanager.internal.services.task.SchedulerServiceAsync.scheduleRaw$lambda-2(SchedulerServiceAsync.kt:44)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
[13:26:03] [pool-25-thread-1/WARN]: at java.base/java.lang.Thread.run(Thread.java:831) -
ZuanShiGG666
- 5/5,
need more better support minecraft 1.19 minecraft 1.19 minecraft 1.19 minecraft 1.19 minecraft 1.19
-
Prozentsatz
- 1/5,
The plugin is extremely shit!
I regret having to use this!
But that's life.. there's nothing you can do about it! -
Browsit
- 5/5,
We recommend the PlaceholderAPI plugin for your server.
Read our full review at: https://browsit.org/blog/spigot/6245/ -
star5426
- 5/5,
So many things are capable because of this plugin, just doing my part and giving thanks.
-
jurian32e
- 5/5,
This plugin is really a must-have for EVERY server, thanks a lot for this amazing resource and keep the work up, collegae!
-
OoyonghongoO
- 5/5,
English:He's very good, but he doesn't seem to support java19. I hope he can support it quickly. Because the server needs java19, it's ready to upgrade to minecraft 1.19. Thank the production team. If you don't understand, I'm sorry, because I'm using Baidu translation.
Chinese:他很好,但是他貌似不支持Java19,希望能快点支持,因为服务器需要Java19而准备升级到Minecraft 1.19,谢谢制作团队。如果您看不懂,很抱歉,因为我正在使用百度翻译。