SimpleStuff is a lightweight Paper plugin that adds SimpleStuff, which every server should have:
SimpleStuff
SimpleStuff is a lightweight, performance-focused plugin that adds a wide range of utility features:
- /rtp — Random teleportation with per-dimension permissions and configurable safe-location search
- /home — Persistent player homes stored in an embedded H2 database
- /tpa — Player-to-player teleport requests with accept/decline
- /back — Teleport back to your last location (death or teleport)
- /spawn — Teleport to the world spawn
- /fly — Toggle flight
- /feed — Fill your hunger bar
- /heal — Heal to full health
- /repair — Repair items (single or all)
- /god — Toggle invincibility
- /invsee — View a player's inventory live
- Workstation commands — Open virtual anvils, crafting tables, ender chests, and more
- Combat log — Blocks teleports during PvP and punishes combat loggers
- Home import — Import homes from an old plugin's .yml file
- Custom join/leave messages — Configurable join and quit messages
All persistent data (homes) is stored in an embedded H2 database (plugins/SimpleStuff/simplestuff.mv.db). This design keeps the plugin fast, with no external database dependencies and a minimal memory footprint.
Installation
- Place
SimpleStuff-1.1.0.jarinto your server'splugins/folder. - Restart the server (or use a plugin manager like PlugMan).
- The plugin will generate
plugins/SimpleStuff/config.ymlon first run. - Edit
config.ymlas desired and run/simplestuff reloadto apply changes without restarting.
Commands
Teleport Commands
| Command | Description | Permission |
|---|---|---|
/rtp [dimension] |
Randomly teleport to a safe location. Dimension: overworld, nether, or the_end. Defaults to current dimension. |
simplestuff.rtp + simplestuff.rtp.<dimension> |
/sethome <name> |
Set a home at your current location. | simplestuff.home |
/home <name> |
Teleport to a home. With no name, lists your homes. | simplestuff.home |
/delhome <name> |
Delete a home. | simplestuff.home |
/homes |
List all your homes with current limit. | simplestuff.home |
/tpa <player> |
Request to teleport to a player. | simplestuff.tpa |
/tpahere <player> |
Request a player to teleport to you. | simplestuff.tpa |
/tpaccept [player] |
Accept a pending teleport request. | simplestuff.tpa |
/tpadecline [player] |
Decline a pending teleport request. | simplestuff.tpa |
/back |
Teleport to your last location (death or teleport). | simplestuff.back |
/spawn |
Teleport to the world spawn. | simplestuff.spawn |
Utility Commands
| Command | Description | Permission |
|---|---|---|
/fly |
Toggle flight. | simplestuff.fly |
/feed |
Fill your hunger bar to full. | simplestuff.feed |
/heal |
Heal yourself to full health. | simplestuff.heal |
/repair single |
Repair the item in your hand. | simplestuff.repair |
/repair all |
Repair all repairable items in your inventory. | simplestuff.repair |
/god |
Toggle god mode (invincibility, no damage). | simplestuff.god |
/invsee <player> |
View a player's inventory live. | simplestuff.invsee |
Workstation Commands
| Command | Description | Permission |
|---|---|---|
/anvil |
Open a virtual anvil. | simplestuff.anvil |
/craftingtable |
Open a virtual crafting table. | simplestuff.craftingtable |
/enderchest |
Open your ender chest. | simplestuff.enderchest |
/grindstone |
Open a virtual grindstone. | simplestuff.grindstone |
/stonecutter |
Open a virtual stonecutter. | simplestuff.stonecutter |
/cartography |
Open a virtual cartography table. | simplestuff.cartography |
/loom |
Open a virtual loom. | simplestuff.loom |
/smithingtable |
Open a virtual smithing table. | simplestuff.smithingtable |
/enchantingtable |
Open a virtual enchanting table. | simplestuff.enchantingtable |
/brewingstand |
Open a virtual brewing stand. | simplestuff.brewingstand |
/furnace |
Open a virtual furnace. | simplestuff.furnace |
/smoker |
Open a virtual smoker. | simplestuff.smoker |
/blastfurnace |
Open a virtual blast furnace. | simplestuff.blastfurnace |
Admin Commands
| Command | Description | Permission |
|---|---|---|
/simplestuff reload |
Reload config and apply changes without restart. | simplestuff.reload |
/simplestuff version |
Show plugin version. | None |
Permissions
Note: All permissions default to OP only. Server owners must assign permissions via a permissions plugin like LuckPerms.
| Permission | Default | Description |
|---|---|---|
simplestuff.rtp |
op |
Allows use of /rtp |
simplestuff.rtp.overworld |
op |
Allows /rtp in the overworld |
simplestuff.rtp.nether |
op |
Allows /rtp in the nether |
simplestuff.rtp.the_end |
op |
Allows /rtp in the end |
simplestuff.home |
op |
Allows all home commands |
simplestuff.homes.limit.unlimited |
op |
Grants unlimited homes |
simplestuff.homes.limit.<number> |
op |
Grants that specific number of homes (e.g. simplestuff.homes.limit.10) |
simplestuff.tpa |
op |
Allows all teleport request commands |
simplestuff.back |
op |
Allows use of /back |
simplestuff.spawn |
op |
Allows use of /spawn |
simplestuff.fly |
op |
Allows use of /fly |
simplestuff.feed |
op |
Allows use of /feed |
simplestuff.heal |
op |
Allows use of /heal |
simplestuff.repair |
op |
Allows use of /repair |
simplestuff.anvil |
op |
Allows use of /anvil |
simplestuff.craftingtable |
op |
Allows use of /craftingtable |
simplestuff.enderchest |
op |
Allows use of /enderchest |
simplestuff.grindstone |
op |
Allows use of /grindstone |
simplestuff.stonecutter |
op |
Allows use of /stonecutter |
simplestuff.cartography |
op |
Allows use of /cartography |
simplestuff.loom |
op |
Allows use of /loom |
simplestuff.smithingtable |
op |
Allows use of /smithingtable |
simplestuff.enchantingtable |
op |
Allows use of /enchantingtable |
simplestuff.brewingstand |
op |
Allows use of /brewingstand |
simplestuff.furnace |
op |
Allows use of /furnace |
simplestuff.smoker |
op |
Allows use of /smoker |
simplestuff.blastfurnace |
op |
Allows use of /blastfurnace |
simplestuff.combatlog.bypass |
op |
Bypasses the combat log (teleport while in combat, no death on logout) |
simplestuff.god |
op |
Allows use of /god |
simplestuff.invsee |
op |
Allows use of /invsee |
simplestuff.reload |
op |
Allows /simplestuff reload |
Combat Log
SimpleStuff includes a combat log system to prevent players from escaping PvP:
- Tagging: When a player is hit by another player (PvP only — not mobs or natural damage), both players are tagged as "in combat" for the configured duration.
- Chat notifications: When combat starts, players see: "You are now in combat! 15 second(s) remaining." When combat ends, they see: "You are no longer in combat!"
- Teleport blocking: While in combat, the following commands are blocked:
/tpa,/tpahere,/tpaccept,/home,/spawn,/rtp. The blocked message shows the remaining time. - Combat logging: If a player logs out while in combat, they are killed and a message is broadcast to the server.
- Combat logger log: When
combat-log-loggers: true(default), combat loggers are saved toplugins/SimpleStuff/combat-loggers.jsonwith their timestamp, player name, and UUID. - Bypass: Players with the
simplestuff.combatlog.bypasspermission are exempt from all combat log effects. - Config: The combat duration is set in one place in
config.yml(combat-log-time, default 15 seconds). Set to0to disable.
Home Import (from an old plugin)
SimpleStuff can import homes from an old plugin that saved homes in a .yml file:
- Set
home-import-enabled: trueinconfig.yml. - Restart the server. A folder
plugins/SimpleStuff/import/is created. - Place your old plugin's homes
.ymlfile(s) into that folder. - Restart the server again. The plugin reads the file(s), imports all homes (name, location, and player) into SimpleStuff's H2 database, and moves processed files to an
import/processed/subfolder. - Players whose homes were imported are notified in chat when they join: "Your homes have been transferred to SimpleStuff!"
- To disable the feature, set
home-import-enabled: falseand delete theimportfolder.
Supported .yml Formats
The importer supports multiple common home-save formats:
Format 1 — EssentialsX-style:
homes:
<player-uuid>:
<home-name>:
world: world
x: 100.0
y: 64.0
z: 100.0
yaw: 0.0
pitch: 0.0
Format 2 — Serialized Location (top-level UUIDs):
<player-uuid>:
<home-name>:
==: org.bukkit.Location
world_key: minecraft:overworld
x: 100.0
y: 64.0
z: 100.0
pitch: 0.0
yaw: 0.0
Format 3 — Nested under "homes" with serialized Locations:
homes:
<player-uuid>:
<home-name>:
==: org.bukkit.Location
world_key: minecraft:overworld
x: 100.0
y: 64.0
z: 100.0
pitch: 0.0
yaw: 0.0
Configuration (config.yml)
# SimpleStuff Configuration
# Author: Johndinglesin
# Version: 1.1.0
# Config version - used to auto-update config when new options are added
config-version: 3
# Join / leave messages
# Use <player-name> as a placeholder for the player's name
# Set to empty string "" to disable
join-message: "+ <player-name> Joined"
leave-message: "- <player-name> Left"
# Default number of homes per player
default-homes: 3
# /rtp settings per dimension
# mode: "random" = random safe block within radius, "worldborder" = random safe block within world border
# radius: only used when mode is "random" (in blocks)
rtp:
overworld:
enabled: true
mode: "worldborder"
radius: 5000
nether:
enabled: true
mode: "random"
radius: 1000
the_end:
enabled: true
mode: "random"
radius: 1000
# Teleport request timeout in seconds
tpa-timeout: 60
# Cooldown between /rtp uses in seconds (0 to disable)
rtp-cooldown: 0
# Cooldown between /back uses in seconds (0 to disable)
back-cooldown: 0
# Cooldown between /spawn uses in seconds (0 to disable)
spawn-cooldown: 0
# Combat log settings
# Time in seconds a player is considered "in combat" after being hit by another player.
# While in combat, teleport commands (/tpa, /home, /spawn) are blocked.
# If a player logs out while in combat, they are killed.
# Set to 0 to disable the combat log entirely.
# Players with the permission "simplestuff.combatlog.bypass" are exempt.
combat-log-time: 15
# When true, players who combat log (log out while in combat) are saved to a JSON log file:
# plugins/SimpleStuff/combat-loggers.json
# Each entry includes: timestamp, player name, and player UUID.
combat-log-loggers: true
# Home import settings
# When enabled, a folder "import" is created in the plugin folder on the next restart.
# Place your old plugin's homes .yml file(s) in that folder.
# On the next restart, the homes are imported into SimpleStuff's database.
# Players whose homes were imported are notified in chat when they join.
# To disable, set this to false and delete the "import" folder.
home-import-enabled: false
Data Storage
H2 Database
All home data is stored in an embedded H2 database at:
plugins/SimpleStuff/simplestuff.mv.db
The database contains a single homes table:
| Column | Type | Description |
|---|---|---|
id |
INT AUTO_INCREMENT | Primary key |
player_uuid |
VARCHAR(36) | Player's UUID |
home_name |
VARCHAR(64) | Home name (lowercase) |
world |
VARCHAR(64) | World name |
x, y, z |
DOUBLE | Coordinates |
yaw, pitch |
FLOAT | Player rotation |
A unique constraint on (player_uuid, home_name) prevents duplicate home names per player.
Why H2?
- Zero external dependencies — embedded, runs in-process.
- Fast — no network I/O, ideal for small datasets.
- Persistent — survives restarts.
- Lightweight — minimal memory footprint.
Support
If you want anything added or find a bug. Please go to the form
Information
Pinned Versions
- R1.21–26.2
Pages
Members
1Owner