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, performance-focused plugin that adds a wide range of utility features:

  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. Workstation commands — Open virtual anvils, crafting tables, ender chests, and more
  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

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

  1. Place SimpleStuff-1.1.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] 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 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.

Home Import (from an old plugin)

SimpleStuff can import homes from an old plugin that saved homes in a .yml file:

  1. Set home-import-enabled: true in config.yml.
  2. Restart the server. A folder plugins/SimpleStuff/import/ is created.
  3. Place your old plugin's homes .yml file(s) into that folder.
  4. 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.
  5. Players whose homes were imported are notified in chat when they join: "Your homes have been transferred to SimpleStuff!"
  6. To disable the feature, set home-import-enabled: false and delete the import folder.

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

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

Pinned Versions

Members

1