ModsJava
SimpleStuff
SimpleStuff is a lightweight Paper plugin that adds SimpleStuff, which every server should have:
⬇ Download on Hangar# 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.` |
| `/sethome ` | Set a home at your current location. | `simplestuff.home` |
| `/home ` | Teleport to a home. With no name, lists your homes. | `simplestuff.home` |
| `/delhome ` | Delete a home. | `simplestuff.home` |
| `/homes` | List all your homes with current limit. | `simplestuff.home` |
| `/tpa ` | Request to teleport to a player. | `simplestuff.tpa` |
| `/tpahere ` | 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 ` | 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.` | `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:**
```yaml
homes:
:
:
world: world
x: 100.0
y: 64.0
z: 100.0
yaw: 0.0
pitch: 0.0
```
**Format 2 — Serialized Location (top-level UUIDs):**
```yaml
:
:
==: 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:**
```yaml
homes:
:
:
==: 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`)
```yaml
# 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 as a placeholder for the player's name
# Set to empty string "" to disable
join-message: "+ Joined"
leave-message: "- 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](https://docs.google.com/forms/d/e/1FAIpQLSfCtsyk3LiUA2YZ8_Dz_q-rG_2Jt9TURdi0mE0QrLEUz6fQCg/viewform?usp=header)
SimpleStuff is a free Minecraft Java mod. Compatible with Minecraft 1.21, 26.1, 26.1.1, 26.1.2 and newer. Downloaded 3 times (via Hangar). Download it and open it directly in the game.