[1.20.5-1.21.x] BetterSettings ⚙️ | API-First Player Settings GUI | Folia, Async, High Performance
SpigotMCThe unified, high-performance settings framework. Replaces fragmented commands with one API-drive
82 downloads
latest v2025-11-19 SpigotMC
BetterSettings
The Ultimate Player Preference Framework
█ PAPER • PURPUR • FOLIA 1.20.5+ █
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
⚡ Why BetterSettings?
BetterSettings acts as the central nervous system for your server. It unifies 50+ options into one highly optimized GUI. It is the only settings plugin designed to allow other plugins to inject their own settings directly into the menu.
- Folia & Async Native
Built strictly for multithreading. Zero main-thread blocking. Database saves happen asynchronously.
- Universal API Framework
Don't write your own GUI. Hook into ours. We provide the layout, sounds, and pagination automatically.
- Premium UX Design
Categorized menus, glass borders, toggle sounds, and instant visual feedback.
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
️ Clean UI & Modules
No more endless scrolling. Categories keep things organized.
Included Settings (Out of the Box):
️ Clean UI & Modules
No more endless scrolling. Categories keep things organized.
Communication
Global Chat • Private Messages • Death Messages • Join/Quit Messages •
Mentions (API)
️ Visuals
Scoreboard • Vanish • Night Vision • Personal Time • Personal Weather • Tab List •
Particles (API)
Gameplay
Auto-Pickup • Flight • PvP • Auto-Sprint • Auto-Respawn • God Mode • Speed Boosts • No Hunger
️ Protection
Drop Protection (Anti-Q) • Inventory Lock • No Fall Damage • No Mob Targeting
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Developer API
The core value is the API. It is guaranteed thread-safe. Don't write your own GUI logic—hook into ours with one line of code.
Developer API
1. Register a Setting
Code (Java):
@Override
public void onEnable ( ) {
// Your setting appears in the GUI automatically
SettingsRegistry. getInstance ( ). registerSetting ( new MyCustomSetting ( ) ) ;
}
Code (Java):
@EventHandler
public void onToggle (PlayerToggleSettingEvent event ) {
// Perfect for Rank-Based features or Economy hooks
if (event. isEnabling ( ) && !player. hasPermission ( "vip.chat" ) ) {
event. setCancelled ( true ) ;
event. getPlayer ( ). sendMessage ( "§cYou need VIP to enable this!" ) ;
}
}
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
⚙️ Files & Configuration
We use a split-config system for maximum organization.
⚙️ Files & Configuration
We use a split-config system for maximum organization.
- config.yml » Main system preferences.
- settings.yml » Configure the 50+ built-in toggles (Icons, Names, Lore).
- ui.yml » Customize the GUI layout, borders, and glass colors.
- messages.yml » Full translation support with Hex Colors.
- ⚡ performance.yml » Database tuning for high-player-count servers.
Comments 0
No comments yet. Be the first to share your thoughts.