SystemTokens | ✨ The Token System Your Server Deserves!
Tired of players getting scammed? Say goodbye to risky trades! SystemTokens modernizes your server's economy with a clean, fast, and 100% secure graphical interface.
✅ Anti-Theft: A double-confirmation system that protects your players.
✅ Intuitive GUI: Trade items and money (with Vault support) visually and easily.
✅ Fully Configurable: Make the plugin match your server's unique style!
Lightweight, optimized, and essential for a fair gameplay experience.
---
## Why Choose SystemTokens?
SystemTokens (STP) is the ultimate plugin for prison servers seeking a robust and modern token economy. Compatible with **Java 8** and **Spigot 1.8.8**, it offers full compatibility with legacy servers.
### Main Features:
**Advanced Token Economy**
- Complete command system for token management
- Secure SQLite database storage
- Perfect Vault integration for economic compatibility
⛏️ **Custom Tool System**
- Unique pickaxes and swords with customizable names and lore
- Clean lore system without duplication
- Automatic lore reconstruction from configuration
- NBT-compatible for kit plugins
✨ **Flexible Custom Enchantments**
- Speed, Explosive, Efficiency, Fortune, Fly, Nuke, GiveToken, GiveMoney, Strength
- 4 pricing models: LINEAR, EXPONENTIAL, LOGARITHMIC, PROGRESSIVE_ARITHMETIC
- Each enchantment individually configurable in config.yml
- Custom effects and dynamic levels
️ **Interactive Enchantments GUI**
- Fully configurable interface from config.yml
- Complete placeholder support in names and lore
- Real-time feedback for insufficient tokens
- Automatic GUI updates when applying enchantments
**Tool Protection**
- Prevents accidental loss of custom pickaxes
- Double-tap Q system for safe item dropping
**Persistent Storage**
- Tokens and pickaxes saved in SQLite database
- Automatic pickaxe restoration on respawn
- Automatic backup system
⚙️ **Robust Configuration**
- `/enchantsreload` command for safe reloading
- Fully customizable messages
- Tab-completion on all commands
- Granular permission system with `stp.*` prefix
### PlaceholderAPI Support
Complete PlaceholderAPI integration:
- `%stp_token_balance%` - Player's token balance
- `%stp_token_balance_formatted%` - Formatted balance (1K, 1M, etc.)
- `%stp_enchant_<enchant>_current_level%` - Current enchantment level
- `%stp_pickaxe_name%` - Pickaxe name
- And many more internal placeholders
### Full Compatibility
✅ **Compatible Plugins:**
- PlayerKits2 (recommended for creating kits with enchanted tools)
- AutoSell (handles automatic block selling)
- Vault (economic integration)
- PlaceholderAPI (placeholder support)
- WorldGuard (region support)
- Essentials (kit integration)
### Recent Updates v1.1.0
**✅ Full Java 8 Compatibility**
- Removed all Java 8+ features for maximum compatibility
- Specifically optimized for Spigot 1.8.8
** Clean Lore System**
- Complete refactoring of tool lore handling
- Lore is always rebuilt from configuration templates
- No more adding or cleaning old lore
- NBT-safe and compatible with kit plugins
**⚙️ Robust Reload System**
- Improved `/enchantsreload` command with error handling
- User feedback during reload process
** Plugin Compatibility**
- Fully compatible with AutoSell (fortune-blocks disabled)
- Compatible with PlayerKits2 for creating kits with enchanted tools
- Works seamlessly with Essentials, Vault, PlaceholderAPI, and WorldGuard
** Command Improvements**
- `/token` now shows balance by default when used without arguments
- Complete permission system with `stp.*` prefix
- Aliases for all main commands
** Legacy Server Optimization**
- Specifically designed for Spigot 1.8.8 and Java 8
- No modern Java features that could cause compatibility issues
- Extensive testing in legacy server environments
### Example Configuration
Code (Text):
# CONFIG BETA 1.0.2
pickaxe:
display-name: "&f&lPICO &7&l| &a&lINICIAL"
lore:
- ""
- "&fDueño: &f%player%"
- ""
- "&a&lEncantamientos:"
- "&2» {}"
sword:
display-name: "&b&lESPADA &7&l| &a&lINICIAL"
lore:
- "&7{}"
# MODELS PRICES:
# - LINEAR: price = cost-per-level * level
# - LOGARITHMIC: price = cost-per-level * log(level + 2)
# - EXPONENTIAL: price = cost-per-level * (factor ^ level) # default factor: 1.5
# - PROGRESSIVE_ARITHMETIC: price = cost-per-level + (level - 1) * increment # default increment: 500
#
# Only EXPONENTIAL uses 'factor'.
# Only PROGRESSIVE_ARITHMETIC uses 'increment'.
# IMPORTANT: If the model is LINEAR or LOGARITHMIC, the other parameters are ignored.
# LINEAL IS THE DEFAULT MODEL, IF YOU WANT TO CHANGE IT, JUST CHANGE THE MODEL NAME BELOW.
model: LINEAL
# ENCHANTS PROPERTIES
enchants:
# EFFECTS
speed:
display: "&7Speed"
max-level: 2
enabled: true
cost-per-level: 50000
factor: 1.5 # EXPO
increment: 500 # P-A
enchants-item-avaible:
- "_PICKAXE"
- "_SWORD"
enchant-strict: false
strength:
display: "&7Strength"
max-level: 2
enabled: true
cost-per-level: 50000
factor: 1.5 # EXPO
increment: 500 # P-A
enchants-item-avaible:
- "_SWORD"
- "_AXE"
enchant-strict: false
# MINER
explosive:
display: "&7Explosive"
max-level: 50
enabled: true
chance: 70
cost-per-level: 100000
factor: 1.5
increment: 500
enchants-item-avaible:
- "_PICKAXE"
enchant-strict: true
efficiency:
display: "&7Efficiency"
max-level: 100
enabled: true
cost-per-level: 1000
factor: 1.5
increment: 500
enchants-item-avaible:
- "_PICKAXE"
enchant-strict: true
fortune:
display: "&7Fortune"
max-level: 20
enabled: true
cost-per-level: 5000
factor: 1.5
increment: 500
enchants-item-avaible:
- "_PICKAXE"
enchant-strict: true
fly:
display: "&7Fly"
max-level: 1
enabled: true
cost-per-level: 1000000
factor: 1.5
increment: 500
enchants-item-avaible:
- "_PICKAXE"
enchant-strict: true
nuke:
display: "&7Nuke"
max-level: 1
enabled: true
chance: 0.1
cost-per-level: 1000000
factor: 1.5
increment: 500
enchants-item-avaible:
- "_PICKAXE"
enchant-strict: true
givetoken:
display: "&7Recolector de tokens"
max-level: 20
price-for-level: 10
messageStatus: true
enabled: true
cost-per-level: 10000
factor: 1.5
increment: 500
enchants-item-avaible:
- "_PICKAXE"
enchant-strict: true
givemoney:
display: "&7Recolector de dinero"
max-level: 50
price-for-level: 30
messageStatus: true
enabled: true
cost-per-level: 10000
factor: 1.5
increment: 500
enchants-item-avaible:
- "_PICKAXE"
enchant-strict: true
# ALLOWEDS
allowed-blocks:
- STONE
- COBBLESTONE
- IRON_ORE
- GOLD_ORE
- DIAMOND_ORE
- DIAMOND_BLOCK
- EMERALD_BLOCK
# DATABASE
database:
host: localhost
name: minecraft
username: usuario
password: contraseña
# MANAGE MESSAGES
message-prefix: "&e&lTOKENS &f» &7"
messages:
general:
no-permission: "No tienes permiso para hacer esto."
plugin-enabled: "Plugin habilitado correctamente."
plugin-disabled: "Plugin deshabilitado correctamente."
enchants-reloaded: "¡Encantamientos y configuración recargados!"
nuke:
activated: "¡Nuke activado exitosamente!"
invalid-mine: "No estás en una mina válida."
explosive:
activated: "¡Explosión activada!"
give-token:
received: "Has recibido &e%tokens% &7tokens por romper un bloque con &e%enchant%&7."
give-money:
received: "Has recibido &e%money% &7tokens por romper un bloque con &e%enchant%&7."
token:
add-usage: "Uso: /token add <jugador> <cantidad>"
remove-usage: "Uso: /token remove <jugador> <cantidad>"
set-usage: "Uso: /token set <jugador> <cantidad>"
give-usage: "Uso: /token give <jugador> <cantidad>"
pay-usage: "Uso: /token pay <jugador> <cantidad>"
balance-usage: "Uso: /token balance [jugador]"
player-not-found: "Jugador no encontrado."
invalid-amount: "La cantidad debe ser un número positivo válido (ej: 1500, 1.5K, 2M, 3B, 1.5Q)."
add-success: "Se añadieron &e%amount% &7tokens a &e%player%&7."
remove-success: "Se eliminaron &e%amount% &ctokens de &e%player%&c."
set-success: "El saldo de tokens de &e%player% &7se ha establecido en &e%amount%&7."
give-success: "Has dado &e%amount% &7tokens a &e%player%&7."
pay-success: "Has pagado &e%amount% &7tokens a &e%player%&7."
pay-received: "Has recibido &e%amount% &7tokens de &e%player%&7."
insufficient-tokens: "No tienes suficientes tokens."
new-balance: "Tu nuevo saldo de tokens es: &e%balance%"
balance: "Saldo de tokens de &e%player%&7: &e%balance%"
self-balance: "Tu saldo de tokens es: &e%balance%"
already-has-tokens: "El jugador ya tiene esa cantidad de tokens."
negative-amount: "La cantidad debe ser mayor que cero."
not-a-number: "La cantidad debe ser un número válido."
give-token-received: "Has recibido &e%tokens% &7tokens por romper un bloque con &e%enchant%&7."
give-money-received: "Has recibido &e%money% &7tokens por romper un bloque con &e%enchant%&7."
only-player: "Este comando solo puede usarlo un jugador."
self-balance: "Tu saldo de tokens es: &e%balance%"
fortune:
applied: "¡Fortune aplicado! Has recibido &e%amount% &7bonus."
pickaxe:
invalid-block: "No puedes picar este bloque con tu pico personalizado."
only-player: "Este comando solo puede usarse en el juego."
received: "Has recibido el &bPico Supremo&7."
drop-item: "Presiona Q nuevamente en menos de 2 segundos para tirar el pico."
invalid-block: "No puedes picar este bloque con tu pico personalizado."
enchant:
register-success: "Encantamiento registrado: &e%enchant%"
register-fail: "No se pudo registrar encantamiento: &e%enchant%"
usage: "Uso: /token enchant <jugador> <encantamiento> <nivel>"
player-not-found: "El jugador no está conectado."
invalid-level: "El nivel debe ser un número válido."
no-pickaxe: "El jugador debe tener un pico en la mano."
not-custom-pickaxe: "El pico no es un Pico Supremo."
unknown: "Encantamiento desconocido: &e%enchant%"
invalid-range: "Nivel inválido. Debe estar entre %min% y %max%."
removed: "Encantamiento &e%enchant% &7removido del jugador &e%player%&7."
applied: "Encantamiento &e%enchant% &7aplicado al jugador &e%player% &7con nivel &e%level%&7."
# GUI CONFIGURATION
enchant-gui:
title: "&7Enchant Menu"
size: 45
items:
pickaxe:
slot: 10
material: diamond_pickaxe
name: "%pickaxe_name%"
lore:
- "%pickaxe_lore%"
efficiency:
slot: 12
material: ENCHANTED_BOOK
name: "&f%enchant_efficiency_name%"
lore:
- "&7Este encantamiento aumenta la velocidad del minado mientras sostenga el pico en la mano."
- "&7"
- "&f• &7Niveles: &f%enchant_efficiency_current_level% / %enchant_efficiency_max_level%"
- "&f• &7Costo por nivel: &f%enchant_efficiency_cost_per_level% tokens"
fortune:
slot: 13
material: ENCHANTED_BOOK
name: "&f%enchant_fortune_name%"
lore:
- "&7Este encantamiento aumenta la cantidad de bloques que mina el jugador mientras sostenga el pico en la mano."
- "&7"
- "&f• &7Niveles: &f%enchant_fortune_current_level% / %enchant_fortune_max_level%"
- "&f• &7Costo por nivel: &f%enchant_fortune_cost_per_level% tokens"
speed:
slot: 14
material: ENCHANTED_BOOK
name: "&f%enchant_speed_name%"
lore:
- "&7Este encantamiento aumenta la velocidad del jugador mientras sostenga el pico en la mano."
- "&7"
- "&f• &7Niveles: &f%enchant_speed_current_level% / %enchant_speed_max_level%"
- "&f• &7Costo por nivel: &f%enchant_speed_cost_per_level% tokens"
givemoney:
slot: 15
material: ENCHANTED_BOOK
name: "&f%enchant_givemoney_name%"
lore:
- "&7Este encantamiento aumenta el dinero del jugador mientras rompa bloques con el pico."
- "&7"
- "&f• &7Niveles: &f%enchant_givemoney_current_level% / %enchant_givemoney_max_level%"
- "&f• &7Costo por nivel: &f%enchant_givemoney_cost_per_level% tokens"
givetoken:
slot: 16
material: ENCHANTED_BOOK
name: "&f%enchant_givetoken_name%"
lore:
- "&7Este encantamiento aumenta los tokens del jugador mientras rompa bloques con el pico."
- "&7"
- "&f• &7Niveles: &f%enchant_givetoken_current_level% / %enchant_givetoken_max_level%"
- "&f• &7Costo por nivel: &f%enchant_givetoken_cost_per_level% tokens"
explosive:
slot: 21
material: ENCHANTED_BOOK
name: "&f%enchant_explosive_name%"
lore:
- "&7Este encantamiento aumenta los bloques que rompe el jugador, entre más nivel más bloques rompe."
- "&7"
- "&f• &7Niveles: &f%enchant_explosive_current_level% / %enchant_explosive_max_level%"
- "&f• &7Costo por nivel: &f%enchant_explosive_cost_per_level% tokens"
nuke:
slot: 22
material: ENCHANTED_BOOK
name: "&f%enchant_nuke_name%"
lore:
- "&7Este encantamiento tiene una probabilidad de romper todos los bloques alrededor de la mina que rompe el jugador."
- "&7"
- "&f• &7Niveles: &f%enchant_nuke_current_level% / %enchant_nuke_max_level%"
- "&f• &7Costo por nivel: &f%enchant_nuke_cost_per_level% tokens"
fly:
slot: 23
material: ENCHANTED_BOOK
name: "&f%enchant_fly_name%"
lore:
- "&7Este encantamiento hace poder volar al jugador mientras sostenga el pico en la mano."
- "&7"
- "&f• &7Niveles: &f%enchant_fly_current_level% / %enchant_fly_max_level%"
- "&f• &7Costo por nivel: &f%enchant_fly_cost_per_level% tokens"
strength:
slot: 17
material: ENCHANTED_BOOK
name: "&f%enchant_strength_name%"
lore:
- "&7Este encantamiento aumenta el daño del jugador mientras sostenga la espada o el hacha en la mano."
- "&7"
- "&f• &7Niveles: &f%enchant_strength_current_level% / %enchant_strength_max_level%"
- "&f• &7Costo por nivel: &f%enchant_strength_cost_per_level% tokens"
locked-menus:
- "enchant menu"
### Plugin Status
✅ **Production-Ready Plugin**
- All main features implemented and stable
- Fully functional lore system without duplication
- Full compatibility with Java 8 and Spigot 1.8.8
- Regular updates and new features continuously added
### ️ Quick Installation
1. Download the latest .jar file
2. Place it in your server's `plugins/` folder
3. Restart the server to generate configuration files
4. Configure `config.yml` according to your needs
5. Restart again or use `/enchantsreload` to apply changes
### Perfect For:
- Prison Servers
- Survival servers with economy
- Servers using AutoSell
- Administrators seeking Java 8 compatibility
- Servers needing robust kit systems
**SystemTokens: The definitive solution for token economy in your Minecraft server.**