Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
InspectElement
"Inspect element" for your Minecraft server. You see a message, a menu, a scoreboard line or a hologram, and you have no idea which of your 60 plugins sent it, or in which file it lives. Click it, and InspectElement tells you: plugin › file:line › key.
[Shop] You bought 5x Diamond for $10 [?] <- click the [?]
[Inspect] Where does this chat message come from? #12
↳ received 3 ms after /buy (ShopPlugin)
"[Shop] You bought 5x Diamond for $10"
1. ShopPlugin › messages.bought (97%)
plugins/ShopPlugin/messages.yml:14 + jar default [Edit]
↳ Built from ShopPlugin: prefix + messages.bought
What you can inspect
- Chat messages. Turn on inspect mode with
/inspect: a[?]follows every message you receive. Click it to get the candidate sources, with their file, line, key and a confidence. You also get the jar default, how the text was assembled (prefix + body), and the command you ran just before. - Action bars, titles and subtitles. They cannot be clicked, so they are echoed in your chat
with their own
[?]./inspect recentlists the last texts you received. - Menus. In inspect mode, click an item in any menu to see where its name and lore come from. The menu's plugin never receives the click, and the item stays where it is.
- Scoreboard, tab list and boss bars.
/inspect sidebar,/inspect taband/inspect bossbarlist what is on your screen, one line per text with its source. - Holograms, name tags and named mobs. Look at one and run
/inspect look, or click it in inspect mode. Armor-stand holograms and text displays both work. A click on a hologram's click box is held back, so the hologram's own click action normally doesn't run. - Any text.
/inspect search <text>works from the console too.
Vanilla texts read in English and are reported as vanilla Minecraft texts, so you never chase a plugin for a message the game itself sends.
Edit it right there
Give yourself inspectelement.edit, and each source in a YAML file gets an [Edit] button. It
puts the current value in your chat box: change it, press Enter, reload the plugin.
- Only that value changes: comments, quotes, indentation and line endings are left alone.
- The file is read back before saving: if any other value would differ, nothing is written.
- The original is backed up in
plugins/InspectElement/backups, and/inspect undorestores it.
Where it looks
- Every text file of every plugin folder: YAML, properties, JSON, TXT, HOCON/TOML.
- The defaults bundled in plugin jars, including nested jars.
- Texts hardcoded in plugin classes.
- Server files such as
spigot.ymlandpaper-global.yml.
It understands legacy colors (&a, §a), hex colors in their usual forms, MiniMessage, and
placeholders written %name%, {0}, {name}, <name>, $name or %s. Small-caps fonts and
full-width characters are understood too. Player data, caches and shaded libraries are skipped.
Setup
- Install PacketEvents 2.14 or newer.
- Drop InspectElement in
plugins/and restart. - Run
/inspectin game.
There is nothing to configure: the index builds in the background once the server has started, and only edited files are read again.
Commands
| Command | Effect |
|---|---|
/inspect |
Toggle inspect mode |
/inspect recent |
Last texts received, clickable |
/inspect sidebar · tab · bossbar |
The texts on your screen with their sources |
/inspect look |
The hologram, name tag or entity you are looking at |
/inspect search <text> |
Find the source of any text (console too) |
/inspect undo |
Put back the file of your last edit |
/inspect reindex · stats |
Rebuild the index · show its size |
Permissions
| Permission | Default | Gives |
|---|---|---|
inspectelement.use |
op | /inspect |
inspectelement.edit |
nobody | The [Edit] button and /inspect undo |
Without a permissions plugin, set edit.ops-allowed: true in the config to let operators edit.
Compatibility
- Paper and Folia, 1.20.1 and newer, Java 17+.
- Tested end to end with a scripted Minecraft client on Paper 1.20.1, Paper 1.21.4 and Folia 1.21.11.
- Requires PacketEvents 2.14+.
Privacy
Texts are only recorded for players with inspectelement.use, in memory, and forgotten when they
leave. Commands are remembered by name only, never with their arguments. The plugin makes no
network connection and collects no statistics.
Good to know
- Signed player chat is never modified, so it gets no
[?]. - A text built entirely in code at runtime has no file to point to; the command context still names the plugin of the command you ran.
- Editing covers single values of YAML files in plugin folders. Values on several lines, shared through YAML anchors, or longer than the chat box are edited by hand.


