
mProfile
Private-by-design player profiles, statistics, privacy controls, and social integrations for Paper, Purpur, and Folia.
⬇ Download on ModrinthmProfile
Private-by-design player profiles, statistics, privacy controls, and social integrations for Paper, Purpur, and Folia.
Features
- Profile GUI for online players and everyone previously seen by the server.
- Biography, configurable color theme, and
PUBLIC,LIMITED, orPRIVATEvisibility. - Playtime, player kills, deaths, first-seen, last-seen, and online status.
- Shift-right-click access with a short configurable anti-spam cooldown.
- Fully configurable GUI size, item slots, materials, and theme accent colors.
- Optional message, report, and ignore buttons. Suggest mode lets the player confirm or complete a command before it runs.
- Optional summaries from mBadges, mReputation, and mColor, without hard dependencies.
- English by default and a complete Russian translation selected in
config.yml. - Asynchronous local H2 storage and a public Bukkit Services API.
- Native Paper and Folia schedulers; player and inventory work stays on the owning entity thread.
Requirements and installation
- Java 25
- Paper, Purpur, or Folia 26.2
- Put
mProfile-1.1.0.jarin the server'spluginsdirectory. - Start the server once.
- Edit
plugins/mProfile/config.ymlif desired. - Run
/profile reload.
The generated defaults work without another plugin. Set language.default: ru_RU and reload to switch messages and the GUI to Russian. Missing translation keys fall back to bundled English automatically.
Commands
| Command | Permission | Description |
|---|---|---|
/profile |
mprofile.use |
Open your profile |
/profile <player> |
mprofile.use |
Open an online or stored profile |
/profile bio <text> |
mprofile.edit |
Set a biography; omit text to clear it |
/profile visibility <PUBLIC|LIMITED|PRIVATE> |
mprofile.edit |
Set profile privacy |
/profile theme <name> |
mprofile.edit |
Select a configured theme |
/profile reload |
mprofile.reload |
Reload configuration and language files |
mprofile.view.private lets trusted staff inspect private profiles. mprofile.cooldown.bypass bypasses the viewing cooldown. mprofile.admin grants the staff permissions.
Privacy model
PUBLICallows other players to view the profile and its statistics.LIMITEDallows the profile to open but hides detailed statistics.PRIVATEblocks other players entirely unless they have the explicit bypass permission.
The owner can always view their own profile. mProfile stores only the Minecraft UUID, last name, biography, privacy/theme preferences, and displayed gameplay statistics. It does not store IP addresses, chat, inventory contents, or location history.
GUI and interactions
Slots in config.yml use human-friendly numbering from 1 through the configured inventory size. Invalid materials and slots fall back or are skipped safely; duplicate slots never create multiple actions.
language:
default: en_US
access:
view-cooldown-millis: 750
right-click:
enabled: true
require-sneaking: true
interactions:
enabled: true
actions:
message:
enabled: true
slot: 47
material: PAPER
mode: SUGGEST
command: "msg {player} "
required-plugin: ""
SUGGEST sends a clickable prompt that prepares the command. RUN executes it immediately and should only be used for commands that already perform their own permission and confirmation checks. Actions with required-plugin are hidden while that plugin is unavailable.
Storage and safety
Profile data is kept in plugins/mProfile/profiles.mv.db. Database access is serialized on a dedicated virtual thread and never blocks a server tick. Failed writes cannot roll back a newer cached update, corrupted privacy values fail closed, and shutdown waits at most five seconds before cancelling remaining storage tasks.
Configuration input is bounded: biographies fit the database schema, control characters are removed, player names and locale paths are validated, cooldowns are clamped, and custom action commands reject control characters. Dynamic player text is inserted without MiniMessage tag interpretation.
Back up the plugin directory before moving data between servers. Do not edit the database while the server is running.
API
Other plugins can load MProfileApi from Bukkit's Services Manager. Profile reads return CompletableFuture<Optional<ProfileSnapshot>>; GUI opens return CompletableFuture<Boolean> and are automatically handed to the correct player scheduler. Compile against the lightweight API JAR produced in api/build/libs.
Telemetry and updates
bStats is disabled by default until a public project ID is assigned. If enabled later, it contains no UUIDs, names, biographies, or profile statistics. The asynchronous Modrinth update check is separate and can be disabled with updates.enabled: false.
Build
./gradlew clean build
The plugin JAR is written to build/libs; API artifacts are written to api/build/libs.
Licensed under the MIT License.
- Edition: Minecraft Java
- File type: .jar
- Minecraft version listed: 26.2
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Modrinth — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
- Ships as mProfile-1.1.0.jar — drop this file into the mods folder
- Download size: 85 KB
- Download link checked 4 Oct 2026 — working
These come from our own check of the pack file, not from the source page.