There are two different questions hiding behind “who is on my Minecraft server”. One is who is connected right this second, which the list command answers in a line of text. The other is the much bigger one: who has ever joined, when they last played, how many hours they have put in, what they are carrying, and what they have been doing. Vanilla Minecraft does store all of that, but it stores it as raw UUID-named files that are unreadable without tools. This guide covers both, the plain commands and files that work on any server, and the Player Manager in the Loafhosts LoafHub panel that turns those same files into something you can actually read.
See Who Is Online Right Now
The fastest answer is the list command. Run it from the server console with no leading slash, or in-game as an operator with a slash. It prints how many players are connected, the maximum, and each connected username. It is a snapshot, not a live feed, so run it again to refresh.
| Command | Where | What it prints |
|---|---|---|
list | Server console | There are 3 of a max of 20 players online: Alex, Steve, Notch |
/list | In-game, as an operator | The same list, in chat |
list uuids | Server console | The same list with each player’s UUID in brackets |
- Open your server in the LoafHub panel and go to the Console tab
- Type
listand press Enter - Read the count and the usernames from the response
Tip:
list uuidsis the quickest way to get a player’s UUID without leaving the consoleNote: The player count on a server list ping (what shows in the multiplayer menu) can lag behind
listby a few seconds
The Player Manager: A Live List Without Commands
On Loafhosts, the Player Manager gives you the same information as a page instead of a command. Open your server and pick Player Manager from the sidebar. It shows four tabs across the top, Online, Banned, Operators, and Whitelist, each with a live count, and the Online tab lists every connected player with their skin avatar.
The important detail is how it reads the list. The panel sends list through the server’s console pipe and parses the response, which means it works on any Java server regardless of whether you have enabled RCON. There is nothing to configure and no port to open. The one requirement is that the server has to be running, because a stopped server cannot answer a command.
Note: The Online tab needs the server running, a stopped server cannot report who is connected
Note: Banned, Operators, and Whitelist are read from
banned-players.json,ops.json, andwhitelist.json, so those tabs still work while the server is off
Who Has Ever Joined, Not Just Who Is Online
This is the question the list command cannot answer, and it is the one most people are actually asking. Minecraft keeps a record of every player who has joined, but it spreads that record across several files in your world folder, each named by the player’s UUID rather than their username.
| File | What it holds |
|---|---|
usercache.json | Username to UUID mappings for everyone the server has seen, with a timestamp |
world/playerdata/<uuid>.dat | The player’s inventory, position, health, food, and XP, stored as compressed NBT |
world/stats/<uuid>.json | Every counter the game tracks: play time, blocks mined, items crafted, deaths, mob kills |
world/advancements/<uuid>.json | Which advancements that player has completed, and when |
You can open usercache.json and the two JSON files in the LoafHub File Manager and read them directly. The .dat file is the awkward one, it is gzip-compressed binary NBT, so a text editor shows you nothing useful.
Warning: Never edit a file in
playerdatawhile the server is running, the server holds player state in memory and will overwrite your change on saveTip: Play time in
stats.jsonis stored in ticks underminecraft:play_time, divide by 20 for seconds and by 72000 for hours
Reading a Player’s History in the Panel
Rather than decoding those files yourself, click any player in the Player Manager to open their detail view. Across the top of that view is a row of four figures pulled straight out of the files above:
- First Joined, the first time the server saw that account
- Last Played, the most recent session
- Last Seen Online, when they were last connected
- Playtime, the total converted out of ticks into hours and minutes
That row alone answers most of the “how long has this person actually played” and “when did they last log in” questions, and it works for players who are currently offline, because it comes from the saved files rather than from a live connection.
Tip: Search for a player by name even if they are offline, the detail view is built from their saved data
Note: A brand new server with nobody who has ever joined has no player files yet, so these figures stay empty until someone connects
Viewing a Player’s Inventory
The detail view has an Inventory tab that decodes that compressed .dat file and draws it as the layout you would see in game. It shows the four armour slots (helmet, chestplate, leggings, boots), the offhand slot, the main inventory grid, and the hotbar with the currently selected slot highlighted, along with health, food, and experience level. Item icons are rendered per slot, so you can read a player’s kit at a glance instead of scrolling through NBT tags.
This is genuinely useful for moderation. If someone reports that a player has items they should not, you can check without teleporting to them, without a plugin, and without them being online.
Note: The inventory reads from the player’s last save on disk, so a connected player’s very latest pickups may not appear until the server next saves
Note: The ender chest is not shown in the inventory view
Stats, Advancements and the Rest of the Detail View
The same detail view carries the rest of what the world folder knows, split into tabs:
| Tab | What it shows |
|---|---|
| Overview | The headline figures and current status |
| Stats | Counters grouped as blocks mined, items crafted, used, picked up, dropped, and broken |
| Inventory | The decoded inventory, armour, hotbar and offhand |
| Advancements | Which advancements are complete |
| Chat | Chat lines attributed to that player |
| Kills | Recorded kills |
| Deaths | Recorded deaths |
| IPs | Addresses that account has connected from |
| History | Past moderation actions taken against them |
| Backups | Saved snapshots of that player’s inventory |
| Notes | Your own staff notes on the player |
| Actions | Moderation and utility actions |
The IPs tab is the one worth knowing about for moderation, because it is how you spot one person on several accounts. Treat it carefully, an address can legitimately be shared by a household, a school, or a phone network, so a shared IP is a reason to look closer rather than proof of anything on its own.
Warning: A shared IP address is not proof of ban evasion, families and shared connections produce the same pattern
Tip: Use the Notes tab to leave context for the next person on your staff team, it stays attached to the player
Doing It With Commands Instead
If you would rather stay in the console, or you are on a server without the panel, these are the vanilla equivalents. None of them need a plugin.
| Command | What it does |
|---|---|
list | Who is connected now |
list uuids | The same, with UUIDs |
data get entity <player> | Dumps that online player’s full NBT, including their inventory, into the console |
scoreboard objectives add hours minecraft.custom:minecraft.play_time | Creates a scoreboard tracking play time for everyone |
scoreboard objectives setdisplay sidebar hours | Shows that tracker on screen |
The data get entity route is the closest vanilla equivalent to an inventory view, though the output is a long single line of NBT and the player has to be online for it to work.
Tip: The scoreboard method is the only vanilla way to see play time as a live number in game rather than reading a file
Common Reasons You Cannot See a Player
If a player you expect is missing, work through these in order. Almost every case is one of them.
- The server is stopped. Live lists come from a running server; saved history does not.
- They have never actually joined. Being whitelisted or opped does not create player files, only connecting does.
- The world folder is not the one you think. If your server runs a custom
level-name, theplayerdataandstatsfolders live inside that folder, not insideworld. - The server is in offline mode. Offline servers generate UUIDs from the username rather than from a Mojang account, so a player who changes their name shows up as a new person.
- You are looking at a sub-world. Nether and End data lives under the main world folder, player files stay in the main one.
Warning: On an offline-mode server a username change creates a completely separate player record, the old data is still there under the old UUID
Frequently Asked Questions
How do I see who is on my Minecraft server?
Run list from the server console, or /list in game as an operator, and it prints the connected count and every username. On Loafhosts you can instead open the Player Manager from your server’s sidebar, which shows the same list as a page with avatars and does not need RCON enabled.
How can I see everyone who has ever joined my server?
Open usercache.json in your server’s root, which maps every username the server has seen to a UUID. For more detail, the stats and advancements folders inside your world contain one file per player who has actually connected. In the panel, the Player Manager lets you search a player by name and shows their First Joined date without opening any files.
How do I check how long someone has played on my server?
Play time lives in world/stats/<uuid>.json under minecraft:play_time, counted in ticks; divide by 72000 to get hours. The Player Manager converts this for you and shows Playtime alongside First Joined, Last Played, and Last Seen Online.
Can I see a player’s inventory on my Minecraft server?
Yes. For an online player, data get entity <player> prints their full NBT including inventory into the console. For any player, online or not, the Inventory tab in the LoafHub Player Manager decodes their saved playerdata file and draws the armour, hotbar, offhand, and main inventory as a readable grid.
Where is Minecraft player data stored on a server?
Inside your world folder. Inventories and positions are in playerdata as UUID-named .dat files, counters are in stats as UUID-named .json files, and advancement progress is in advancements. The username to UUID mapping is in usercache.json in the server root.
Do I need RCON to see my players?
No. The Player Manager sends commands through the server’s console pipe rather than over RCON, so it works whether or not enable-rcon is set. The only requirement for live data is that the server is running.
Why is a player’s inventory empty in the panel?
Either they have genuinely never joined, so no playerdata file exists yet, or their file has not been written since they last picked something up. Player data is written when the server saves, so a very recent change can lag until the next save or until the player disconnects.