Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
LogPass
LogPass allows servers to have a locked down server with login that can be logged in from any user with the username and password for their LogPass account.
This is NOT a plugin that allows people to connect with a username and password of a different server. There is no online authentication server.
A LogPass account is completely separate from a Minecraft username - it's its own username/password pair, created only by an admin. Nobody can do anything on the server (move, break blocks, take damage, chat, or run commands) until they log in, and everything about a player - inventory, ender chest, XP, game mode, health, hunger, potion effects, and even permissions/OP - belongs to the account, not the Minecraft profile it's currently logged in from.
Chat is in the format <MinecraftUsername> [<LogpassUsername>] <message>
e.g. <Epiz [admin]> hi
When First Setting Up Use /pass create <username> <password> In The Console
Commands for non OP
- /login <username> <password> - Log into a LogPass account
- /login <username> <password> --force - Log in even if you're already logged into a different account; cleanly ends that session first instead of refusing
- /logout - Log out of your LogPass account (returns you to spawn)
- /pass change <oldPassword> <newPassword> - Change your account's password
- /pass delete <password> - Permanently delete your own LogPass account, confirmed with its password
- /uuid - Returns with the users' LogPass UUID
Commands for Console or OP
- /pass create <username> <password> - Create a LogPass account
- /pass reset <username> <newPassword> - Resets a LogPass account's password
- /pass delete <username> - Deletes a LogPass account (and its saved inventory/permissions data)
- /pass setspawn - Sets where new players spawn, and where unlogged-in members linger
- /pass uuid <username> - Shows an account's LuckPerms UUID, if LuckPerms is installed (see Permissions)
- /pass op <username> <true|false> - Sets whether an account is OP, if LuckPerms is not installed (see Permissions)
- /pass perm add <username> <node> - Grants an account a permission node, if LuckPerms is not installed
- /pass perm remove <username> <node> - Revokes a permission node from an account
- /pass perm list <username> - Lists an account's permission nodes
- /pass uuid <username> - Retrieves LogPass user UUID
How an account's data follows it around
From the moment a player joins until they log in, everything is blank: empty inventory, empty ender chest, no XP, default health/hunger, no potion effects. They're also frozen in place at whatever location /pass setspawn was last run at.
The moment they /login, all of that gets swapped for whatever's saved under that account - a brand-new account just stays blank. They also get teleported to wherever that account last logged out from, not wherever the join spawn happens to be.
/logout (or disconnecting) saves the player's current inventory/ender chest/XP/health/hunger/potions/location back onto the account, then wipes it live again. A manual /logout also teleports the player back to spawn.
Because none of this is tied to a Minecraft profile, the exact same account can be logged into from a completely different Minecraft username and pick up right where it left off.
Permissions
LogPass links an account's permissions - including vanilla OP - to whoever is currently logged into it. There are two ways this works, and LogPass automatically uses whichever is available:
With LuckPerms installed (optional, full node/group/inheritance support): every account gets a fixed UUID unrelated to any real Minecraft account, shown by /pass create or /pass uuid. Manage it with normal LuckPerms commands targeting that UUID:
/lp user <uuid> permission set some.permission true
/lp user <uuid> permission set logpass.op true
Without LuckPerms: LogPass falls back to its own simple built-in store - just an OP flag and a flat list of permission nodes per account, no groups, but no extra plugins needed either:
/pass op <username> true|false
/pass perm add <username> <node>
/pass perm remove <username> <node>
/pass perm list <username>
Either way, permissions apply the moment someone logs in and are removed the moment they log out or disconnect.
The link also works in reverse. If an admin runs vanilla /op or /deop directly on a player who's currently logged into an account, that gets saved onto the account automatically, so it keeps following the account from then on - not just that one Minecraft profile. If the player isn't logged into anything at the time, the vanilla op/deop just happens normally with nothing linked.
One caveat either way: vanilla OP status itself lives in the server's ops.json against the player's real profile. LogPass reverts it on every normal logout/disconnect.
Config
config.yml
# Seconds a player has to /login before being kicked
login-timeout-seconds: 60
# Minimum allowed password length
min-password-length: 4
Logs
Everything below lives under plugins/LogPass/logs/. All three files are plain text format.
chat.log
Every chat message sent, tagged with both identities.
[yyyy-mm-dd hh:mm:ss] Epiz [admin] hi
[yyyy-mm-dd hh:mm:ss] Epiz [admin] hello
[yyyy-mm-dd hh:mm:ss] Epiz [admin] who are you?
[yyyy-mm-dd hh:mm:ss] Epiz [admin] welcome to my server
[yyyy-mm-dd hh:mm:ss] Epiz [admin] im a admin
[yyyy-mm-dd hh:mm:ss] Epiz [admin] im cool
[yyyy-mm-dd hh:mm:ss] Epiz [admin] english?
[yyyy-mm-dd hh:mm:ss] Epiz [admin] hi
commands.log
Every command run by every player, logged in or not. /login and /pass are always shown as <redacted> since their arguments are passwords - those never touch the disk in plain text. The account tag shows [-] for anything run before that player has logged in.
[yyyy-mm-dd hh:mm:ss] Epiz [-] /login <redacted>
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /logout
[yyyy-mm-dd hh:mm:ss] Epiz [-] /login <redacted>
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /logout
[yyyy-mm-dd hh:mm:ss] Epiz [-] /login <redacted>
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /logout
[yyyy-mm-dd hh:mm:ss] Epiz [-] /login <redacted>
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /give
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /plugins
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /give
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /logout
[yyyy-mm-dd hh:mm:ss] Epiz [-] /plugins
[yyyy-mm-dd hh:mm:ss] Epiz [-] /login <redacted>
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /xp set @a 51 points
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /xp set @a 10 points
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /xp set @a 3 points
[yyyy-mm-dd hh:mm:ss] Epiz [admin] /logout
stats.log
A snapshot of health/food/XP/gamemode/location taken at three moments: LOGIN, LOGOUT, and QUIT (disconnect while still logged in). Useful for reconstructing where someone was and what state they were in at any point.
[yyyy-mm-dd hh:mm:ss] Epiz [-] JOIN health=20.0 food=20 xp-level=0 gamemode=SURVIVAL world=world x=-6.4 y=249.0 z=-91.5
[yyyy-mm-dd hh:mm:ss] Epiz [admin] LOGIN health=20.0 food=20 xp-level=0 gamemode=SURVIVAL world=world x=33.6 y=102.0 z=-63.0
[yyyy-mm-dd hh:mm:ss] Epiz [admin] LOGOUT health=20.0 food=20 xp-level=0 gamemode=CREATIVE world=world x=31.6 y=103.0 z=-63.2
[yyyy-mm-dd hh:mm:ss] Epiz [admin] LOGIN health=20.0 food=20 xp-level=0 gamemode=CREATIVE world=world x=31.6 y=103.0 z=-63.2
[yyyy-mm-dd hh:mm:ss] Epiz [admin] LOGOUT health=20.0 food=20 xp-level=0 gamemode=CREATIVE world=world x=28.8 y=104.0 z=-62.7
[yyyy-mm-dd hh:mm:ss] Epiz [admin] LOGIN health=20.0 food=20 xp-level=0 gamemode=CREATIVE world=world x=28.8 y=104.0 z=-62.7
[yyyy-mm-dd hh:mm:ss] Epiz [admin] LOGOUT health=20.0 food=20 xp-level=0 gamemode=CREATIVE world=world x=36.3 y=101.0 z=-55.9
[yyyy-mm-dd hh:mm:ss] Epiz [admin] LOGIN health=20.0 food=20 xp-level=0 gamemode=CREATIVE world=world x=36.3 y=101.0 z=-55.9
[yyyy-mm-dd hh:mm:ss] Epiz [admin] LOGOUT health=20.0 food=20 xp-level=0 gamemode=CREATIVE world=world x=37.2 y=102.0 z=-57.1
[yyyy-mm-dd hh:mm:ss] Epiz [admin] LOGIN health=20.0 food=20 xp-level=0 gamemode=CREATIVE world=world x=37.2 y=102.0 z=-57.1
PlayerData
One file per account under plugins/LogPass/playerdata/, named <logpassUsername>.yml. This is everything that gets restored on /login and removed on /logout - inventory, armor, off-hand, ender chest, XP, game mode, health/hunger, active potion effects, and the account's last location. Empty inventory/armor/ender chest slots are stored as null; an empty off-hand shows up as an actual minecraft:air item rather than null on some versions - both are treated as "nothing" when loaded back in.
<logpassUser>.yml
inventory:
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
armor:
- null
- null
- null
- null
offhand:
==: org.bukkit.inventory.ItemStack
id: minecraft:air
DataVersion: 4903
schema_version: 1
enderchest:
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
- null
exp-level: 0
exp-progress: 0.42857143
total-experience: 0
gamemode: SURVIVAL
health: 20.0
food-level: 20
saturation: 5.0
exhaustion: 2.6739995
potion-effects: []
location:
world: world
x: 38.497286889540916
y: 99.0
z: -69.89819584703928
yaw: -60.59815
pitch: -47.39998
accounts.yml
Every Account is Fully salted and hashed when stored and if data leaks occur passwords will not get leaked.
admin:
salt: pbBZNTh99eC4ytaVRCu0zw==
hash: do58nOGbw8JJcld9u46XUkmHCE72Z3zYsuqTj7H2rs4=
permissions.yml
Only present if LuckPerms is not installed - this is the native permission store described above, keyed by account username. Managed with /pass op and /pass perm rather than by hand. This is basically a simple version of LuckpPerms with no groups or special chat tags.
admin:
op: true
nodes:
- essentials.fly
- worldedit.wand
spawn.yml
Set by /pass setspawn. Where every player lands on join, where a manual /logout sends them back to, and where anyone still unauthenticated stays frozen.
world: world
x: -6.369723867482072
y: 249.0
z: -91.52465770728853
yaw: 0.4498288
pitch: 2.0999684
Support: https://discord.gg/A6kg7bpdba Logpass Email: logpass@atomicmail.io


