system-token-plugin (STP) icon

system-token-plugin (STP) -----

[STABLE] This is a prototype of a token system (economy) and a custom enchantment system.



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. For any ask or feedback, contact me on discord : @danielvflores

✅ 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

---

️ Previews
Pickaxe with current enchantments (BETA 1.0.1):
[​IMG]

EnchantGUI menu (native to the plugin, BETA 1.0.2):
[​IMG]


EnchantGUI menu showing current pickaxe's enchants (BETA 1.0.2):
[​IMG]


EnchantGUI menu showing available enchants to unlock (BETA 1.0.2):
[​IMG]



EnchantGUI menu showing available enchants to unlock to Sword (STABLE 1.1.0):
[​IMG]

Example for Sword with enchants using PlayerKits2 (STABLE 1.1.0):

[​IMG]

---

### 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.**
Resource Information
Author:
----------
Total Downloads: 79
First Release: Jun 21, 2025
Last Update: Jul 4, 2025
Category: ---------------
All-Time Rating:
1 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings