⚖️
Temp4Boost
Temporary Boost Shop for Paper / Spigot
A premium temporary boost system with clean GUI menus, timed effects, smart safety checks and full shop customization.
| GUI Shop |
Category-based menus with safe product browsing, locked/visible permission states and purchase confirmation. |
| Timed Boosts |
Sell temporary potion-effect boosts with custom prices, levels, durations, icons, lore and slots. |
| Safety System |
Cooldowns, active limits, category limits, same-effect protection, anti-exploit GUI checks and secure runtime lock modes. |
| Safe Reload |
Reload aborts safely if config.yml is missing or invalid, and keeps the previous safe runtime state where possible. |
| Persistence |
Active boosts are saved safely and restored after restart, relog, reload recovery or respawn when configured. |
| Live HUD |
ActionBar rotation with boost name and remaining time, plus vanilla effect icons/particles if enabled. |
| Player Command |
Players can use /t4b active to view their active boosts and remaining time in chat. |
| Customization |
Titles, lore, icons, sounds, messages, layouts, categories, products, aliases and PlaceholderAPI display formats are configurable. |
| Permissions |
Category and product permission support with configurable visible-or-hidden locked entries in the GUI. |
| Head Support |
Categories and products can use normal items or custom player heads via owner name, Base64 texture or direct texture URL. |
| Color Support |
Works with legacy color codes and RGB/Hex formats in GUI titles, item names, lore, chat messages and ActionBar text. |
| Update Checker |
Optional Spigot update checker with clear console warnings when a newer version is published. |
| PlaceholderAPI |
Includes both raw placeholders and display-friendly placeholders for scoreboards, tablists, holograms and menus. |
Default Categories
| Movement |
Speed, jump and mobility boosts |
| Combat |
Strength, regeneration and fight utility |
| Defense |
Resistance, absorption and survival protection |
| Mining |
Haste, cave utility and underground support |
| Survival |
Recovery, sustain and emergency support |
| Exploration |
Travel, stealth and world utility |
| Ocean |
Water breathing, swimming and ocean safety |
| Elite |
Permission-gated premium boosts |
Commands
| /t4b |
Main short command |
| /temp4boost |
Main long command alias |
| /boostshop |
Default extra alias from config.yml (editable) |
| /t4b active |
Show your active boosts and remaining time in chat |
Admin Usage
| /t4b reload |
Reload the configuration safely |
| /t4b give <player> <boostId> |
Give a boost to a player |
| /t4b remove <player> <boostId> |
Remove one active boost from a player |
| /t4b clear <player> |
Clear all active boosts from a player |
Permissions
| temp4boost.use |
Open the main Temp4Boost GUI |
| temp4boost.active |
Use /t4b active |
| temp4boost.admin |
Use reload, remove and clear admin commands |
| temp4boost.give |
Use /t4b give |
| temp4boost.category.<category_id> |
Access to one protected category when permission-required: true |
| temp4boost.product.<category_id>.<product_id> |
Access to one protected product when permission-required: true |
| temp4boost.category.* |
Wildcard access to all protected categories |
| temp4boost.product.* |
Wildcard access to all protected products |
Configuration
Default Configuration (config.yml):
Code (YAML):
# ======================================================================
# Temp4Boost Configuration
# ======================================================================
# Current release: 1.9.3
# Runtime target: Paper/Spigot 1.18 through 1.21.x on Java 17.
# The bundled defaults only use IDs that already exist in 1.18.2 so a fresh
# install stays portable across the full supported version range.
# ======================================================================
# Current configuration contract. Keep this value as provided.
# Temp4Boost may restore missing safe system keys when needed, but category and
# product data should always be edited intentionally by the developer.
config-version
: 193
# Extra command aliases. /t4b and /temp4boost always work.
# Set to [] if you do not want extra aliases.
command-aliases
:
- boostshop
# Optional Spigot update checker.
update-checker:
enabled
: true
# Reference links for copy-paste-safe IDs used by this file:
# Materials / item icons (1.18.2-safe list):
# https://jd.papermc.io/paper/1.18.2/org/bukkit/Material.html#enum-constant-summary
# Potion effects (1.18.2-safe list):
# https://jd.papermc.io/paper/1.18.2/org/bukkit/potion/PotionEffectType.html#field-summary
# Sounds (1.18.2-safe list):
# https://jd.papermc.io/paper/1.18.2/org/bukkit/Sound.html#enum-constant-summary
# Text colors work in GUI titles, item names, lore, messages and ActionBar.
# Standard color codes: &a &b &c &l &o &n &m &r
# RGB/Hex formats: 7FFFF, #55FFFF, <#55FFFF>, {#55FFFF}
# Always quote text that starts with # or &, because YAML treats them specially.
cooldown-seconds
: 8
max-simultaneous
: 4
persistence:
save-on-change
: true
same-effect:
block-different-boosts
: true
block-existing-potion-effects
: true
allow-illegal-levels
: false
debug:
enabled
: false
topics:
general
: true
config
: true
economy
: true
purchases
: false
gui
: false
persistence
: true
resync
: false
diagnostics:
startup-summary
: true
restrictions:
disabled-worlds
:
[
]
disable-in-creative
: true
death:
keep-boosts
: true
milk:
behavior
: MATCH_DEATH
self-heal:
rescan-interval-seconds
: 60
particles
: true
icons
: true
actionbar:
enabled
: true
interval-ticks
: 40
format
:
"&b{boost} &8| &f{time}"
stacking-mode
: DENY
permissions:
categories:
hide-without-permission
: false
products:
hide-without-permission
: false
# Categories/products can stay visible but locked by default, with fully
# configurable lore, click denial messages and permission-denied sounds.
messages:
prefix
:
"&9&lTemp4Boost &7> "
active:
header
:
-
"&8&m------------------------------------------------"
-
"&b&lYour Active Boosts &7({count})"
entry
:
"&8- &f{boost} &8| &b{time}"
empty
:
-
"&8&m------------------------------------------------"
-
"&7You do not have any active boosts."
-
"&8&m------------------------------------------------"
footer
:
-
"&8&m------------------------------------------------"
errors:
usage:
active
:
"&7Usage: /t4b active"
sounds:
permission-denied
:
"ENTITY_VILLAGER_NO:0.8:0.9"
placeholderapi:
outputs:
empty
:
""
no-active
:
"&7No active boosts"
boolean-true
:
"true"
boolean-false
:
"false"
list-separator
:
" &8| "
formats:
time
:
"{time}"
boost-display
:
"&b{boost} &8- &f{time}"
next-display
:
"&bNext &8| &f{boost} &8- &f{time}"
list-entry
:
"&b{boost} &8- &f{time}"
status-single
:
"&b1 active &8| &f{boost} &8- &f{time}"
status-multiple
:
"&b{count} active &8| &fNext: &b{boost} &8- &f{time}"
Category And Products Info (config.yml):
Code (YAML):
# ----------------------------------------------------------------------
# [CATEGORIES AND PRODUCTS]
#
# Recommended layout:
#
# categories:
# category_id:
# enabled: true
# name: "&bDisplay Name"
# icon: MATERIAL
# # Custom heads are optional and work in categories and products.
# # Use either head-owner OR head-texture. If both are set, head-texture wins.
# # Recommended:
# # icon: PLAYER_HEAD
# # head-owner: "Notch"
# # Or:
# # icon: PLAYER_HEAD
# # head-texture: "base64:..."
# # head-texture also accepts a direct http(s) Minecraft skin texture URL.
# head-texture: ""
# head-owner: ""
# slot: 10
# lore: ["Short description shown in the main menu."]
# permission-required: false # true requires: temp4boost.category.<category_id>.
# limits:
# max-active: 0
# max-products: 14
# products:
# product_id:
# name: "Swiftness I"
# effect: SPEED
# level: 0
# duration-seconds: 120
# price: 150.0
# icon: SUGAR
# head-texture: ""
# head-owner: ""
# slot: 10
# permission-required: false # true requires: temp4boost.product.<category_id>.<product_id>.
# lore: ["Shown on the product item."]
#
# Internal product IDs are "<category_id>.<product_id>", for example:
# movement.speed_i
#
# You may add any category ID. Use lower_snake_case, numbers or hyphens.
# Reserved IDs: main, confirm.
#
# Product effect, duration-seconds and price are required catalog fields. If one
# is missing or has the wrong type, only that product is ignored; Temp4Boost will
# not invent effects, durations or economy values from defaults.
#
# Copy item icons from:
# https://jd.papermc.io/paper/1.18.2/org/bukkit/Material.html#enum-constant-summary
#
# Copy potion effect IDs from:
# https://jd.papermc.io/paper/1.18.2/org/bukkit/potion/PotionEffectType.html#field-summary
#
# Preferred effect keys use the current Bukkit names, for example:
# SPEED, STRENGTH, HASTE, RESISTANCE, JUMP_BOOST, NIGHT_VISION.
#
# Default icons, sounds and effects only use IDs available in Minecraft 1.18,
# so a fresh install works across the full supported range. Developers may use
# newer valid IDs on newer servers. If an icon material is missing on the current
# server version, Temp4Boost warns in console and uses an internal safe item for
# that GUI entry; no fallback list is needed in config.yml.
#
# Valid materials are always respected, even if they are subtle visually. Only
# empty values, AIR, non-item materials, or IDs unavailable on the current server
# are replaced internally.
#
# Category and product permission entries can stay visible but locked by default,
# or be hidden completely through the permissions section in config.yml.
#
# Balance model used by the default shop:
# - 100-300: utility/basic boosts
# - 300-650: stronger or longer boosts
# - 650-950: high-impact combat/defense boosts
# - 900+: permission-gated elite boosts
# ----------------------------------------------------------------------
PlaceholderAPI
Raw placeholders (kept for compatibility)
| %temp4boost_active_count% |
Current active boost count |
| %temp4boost_has_<id>% |
Checks whether a boost is active |
| %temp4boost_timeleft_<id>% |
Remaining time in raw seconds for a boost |
| %temp4boost_list% |
List of active boost IDs |
Display placeholders
| %temp4boost_has_any% |
Returns the configured true/false output if the player has any active boost |
| %temp4boost_next_id% |
ID of the boost that expires first |
| %temp4boost_next_boost% |
Display name of the boost that expires first |
| %temp4boost_next_category% |
Category of the boost that expires first |
| %temp4boost_next_effect% |
Potion effect name of the boost that expires first |
| %temp4boost_next_level% |
Numeric level of the boost that expires first |
| %temp4boost_next_roman% |
Roman numeral level of the boost that expires first |
| %temp4boost_next_seconds% |
Remaining raw seconds for the boost that expires first |
| %temp4boost_next_time% |
Formatted remaining time for the boost that expires first |
| %temp4boost_next_display% |
Formatted single-line display for the boost that expires first |
| %temp4boost_boost_<id>% |
Display name of one specific boost |
| %temp4boost_time_<id>% |
Formatted remaining time for one specific boost |
| %temp4boost_display_<id>% |
Formatted single-line display for one specific boost |
| %temp4boost_list_display% |
Formatted display list of all active boosts |
| %temp4boost_status% |
Compact formatted status placeholder for scoreboards, tablists or holograms |
Compatibility
| Server Software |
Paper / Spigot |
| Versions |
1.18 - 1.21.x |
| Verified API build range |
1.18.2, 1.19.4, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.6, 1.21, 1.21.1, 1.21.5, 1.21.8, 1.21.11 |
| Java |
17 or higher |
Dependencies
- Vault: Necessary, for economy purposes only.
- PlaceholderAPI: optional, only for placeholders.
- bStats: included within the jar, for metrics.
Temp4Boost
Developed with ❤️ by ThaRialSniper
Need help?
![[IMG]](//proxy.spigotmc.org/0c15e170c045e84465c50af528ea4272d500933f/68747470733a2f2f692e6962622e636f2f3568726e517146462f646973636f7264737570706f727462616e6e65722d312e706e67)
Click the image above to join our Discord for support!