Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for Johndinglesin

SimpleStuff is a lightweight Paper plugin that adds SimpleStuff, which every server should have:

Report SimpleStuff?

SimpleStuff

SimpleStuff is a lightweight plugin that adds stuff that every Minecraft server should have

  1. /rtp — Random teleportation with per-dimension permissions and configurable safe-location search
  2. /home — Persistent player homes stored in an embedded H2 database
  3. /tpa — Player-to-player teleport requests with accept/decline
  4. /back — Teleport back to your last location (death or teleport)
  5. /spawn — Teleport to the world spawn
  6. /fly — Toggle flight
  7. /feed — Fill your hunger bar
  8. /heal — Heal to full health
  9. /repair — Repair items (single or all)
  10. /god — Toggle invincibility
  11. /invsee — View a player's inventory live
  12. /enderchest — Open your ender chest or view another player's
  13. Combat log — Blocks teleports during PvP and punishes combat loggers
  14. Home import — Import homes from an old plugin's .yml file
  15. Custom join/leave messages — Configurable join and quit messages

Installation

  1. Place SimpleStuff-1.2.0.jar into your server's plugins/ folder.
  2. Restart the server (or use a plugin manager like PlugMan).
  3. The plugin will generate plugins/SimpleStuff/config.yml on first run.
  4. Edit config.yml as desired and run /simplestuff reload to apply changes without restarting.

Commands

Teleport Commands

Command Description Permission
/rtp [dimension] [biome] Randomly teleport to a safe location. Dimension: overworld, nether, or the_end. Optionally specify a biome (e.g. /rtp desert or /rtp overworld plains). Never teleports into water. 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
/mute <player> Mute a player so they cannot send chat messages. simplestuff.mute
/unmute <player> Unmute a player. simplestuff.unmute

Container Commands

Command Description Permission
/enderchest Open your ender chest. /enderchest <player> opens another player's ender chest (live). simplestuff.enderchest + simplestuff.enderchest.other

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.enderchest op Allows use of /enderchest
simplestuff.enderchest.other op Allows viewing other players' ender chests with /enderchest <player>
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.mute op Allows use of /mute
simplestuff.unmute op Allows use of /unmute
simplestuff.reload op Allows /simplestuff reload

Home Limit Logic

  • Every player defaults to default-homes (3) homes from config.
  • If a player has simplestuff.homes.limit.unlimited, they have unlimited homes.
  • If a player has any simplestuff.homes.limit.<number> permission, the highest number wins.
  • If a player has both a numeric limit and unlimited, unlimited wins.

Mute System

SimpleStuff includes a simple mute system for staff:

  • /mute <player> — Mutes a player so they cannot send chat messages
  • /unmute <player> — Unmutes a player
  • Permission: simplestuff.mute and simplestuff.unmute (both OP by default)
  • Muted players see: "You are muted and cannot send chat messages." when they try to talk
  • The mute state is in-memory (cleared on server restart)

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 to plugins/SimpleStuff/combat-loggers.json with their timestamp, player name, and UUID.
  • Bypass: Players with the simplestuff.combatlog.bypass permission 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 to 0 to disable.

Configuration (config.yml)

# SimpleStuff Configuration
# Author: Johndinglesin
# Version: 1.2.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

RTP Modes

  • random — Searches for a safe block within a square radius of (0,0) in the dimension's world. The radius is configurable per dimension.
  • worldborder — Searches for a safe block within the world's current world border (with a 10-block margin).

RTP Biomes

You can request a specific biome with /rtp <biome> (uses current dimension) or /rtp <dimension> <biome>. Examples:

  • /rtp desert — teleport to a random desert
  • /rtp overworld plains — teleport to plains in the overworld
  • /rtp nether warped_forest — teleport to a warped forest in the nether

The biome search tries up to 100 locations and only lands in the requested biome.


Config Auto-Update

SimpleStuff includes an automatic config update system:

  • When the plugin starts, it compares the config-version in your current config.yml against the version bundled with the plugin.
  • If your config is behind, the plugin automatically adds any missing options from the new default config.
  • All your existing values and formatting are preserved — only new keys are appended at the end of the file.
  • The config is saved back to disk and the plugin logs a message like: Config auto-updated from version 2 to 3.

This means you can safely upgrade SimpleStuff without manually editing your config file.


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

Category
Admin Tools
Published
August 13, 2026
License
Unspecified
18Downloads
1Stars

Pinned Versions

Members

1