🎉 BetterSettings v1.0.0 - Initial Release
📦 Download
Download BetterSettings-1.0.0.jar
File Size: 96 KB
🌟 What is BetterSettings?
BetterSettings is a lightweight, API-first player settings management system for Paper/Purpur/Folia servers (1.20.5+). It gives your players complete control over their gameplay experience with a beautiful categorized GUI and provides a powerful API for developers to integrate custom settings.
✨ Key Features
🎯 29 Fully Functional Settings
Out of the box, BetterSettings provides 29 working settings that require no additional plugins:
- Communication (4 settings) - Chat, private messages, death messages, join/leave messages
- Display (7 settings) - Scoreboard, player visibility, weather, time, night vision, vanish, tab list
- Gameplay (13 settings) - Flight, PvP, auto-pickup, auto-sprint, auto-respawn, god mode, speed boost, jump boost, water breathing, fire resistance, hunger loss, item pickup, entity collision
- Protection (4 settings) - Drop protection, inventory protection, fall damage, mob targeting
🔌 31 API Framework Settings
Additional settings that save player preferences and can be checked by other plugins:
- Communication (5 settings) - Teleport requests, trade requests, friend requests, chat mentions, DM sound
- Display (8 settings) - Particle effects, sound effects, damage indicators, AFK status, and more
- Gameplay (2 settings) - Teleport cooldown bypass, build mode
- Notifications (11 settings) - All notification settings for plugin integration
- Protection (0 settings) - All protection settings are functional!
🎨 Beautiful GUI System
- Categorized Menu - Settings organized into 5 intuitive categories
- Glass Pane Borders - Professional-looking frame around all menus
- Centered Layouts - Clean, symmetrical design with proper spacing
- Pagination Support - 28 settings per page with smooth navigation
- Visual Feedback - Enchantment glow on enabled settings, sounds on toggle
- Fully Customizable - Every color, icon, and layout option configurable
🔧 Developer API
- Simple Integration - Register custom settings in minutes
- Event System - React to setting changes with cancellable events
- Thread-Safe - Safe to use from any thread, Folia-compatible
- Well Documented - Complete API documentation with examples
- Category Support - Organize your settings into custom categories
⚡ Performance Optimized
- Async I/O - Non-blocking file operations
- Batch Saves - Multiple players saved in single operation
- Smart Caching - Automatic cleanup of offline player data
- Minimal Footprint - Only 96 KB with no external dependencies
- Folia Ready - Proper scheduler usage for regionized threading
📋 What's Included
Configuration Files
config.yml- Main plugin settingssettings.yml- Configure all 60 built-in settings (with ✅/🔌 markers)messages.yml- Customize all user-facing messagesperformance.yml- Performance tuning optionsui.yml- GUI appearance and layout customizationsettings/*.yml- Custom setting definitions (optional)
Documentation
README.md- Quick start guide and overviewAPI.md- Complete developer documentation with examplesCONFIGURATION.md- Detailed configuration guideSETTINGS_STATUS.md- Implementation status of all settingsCHANGELOG.md- Version historyCONTRIBUTING.md- Contribution guidelines
🚀 Installation
- Download
BetterSettings-1.0.0.jarfrom the link above - Place in your server's
pluginsfolder - Start/Restart your server
- Configure (optional) - Edit files in
plugins/BetterSettings/ - Use
/settingscommand to open the GUI
That's it! No dependencies, no complex setup.
📚 Quick Start
For Players
/settings - Open the settings GUI
Navigate through categories, click settings to toggle them on/off. Settings are saved automatically and persist across restarts.
For Server Owners
All configuration files are in plugins/BetterSettings/:
- Customize setting icons, descriptions, and permissions in
settings.yml - Customize GUI appearance in
ui.yml - Customize messages in
messages.yml - Tune performance in
performance.yml
For Developers
// Register a custom setting
SettingsRegistry.getInstance().registerSetting(new MyCustomSetting());
// Check a player's setting
PlayerDataManager dataManager = BetterSettings.getInstance().getDataManager();
boolean enabled = dataManager.getSetting(playerId, "setting_id", defaultValue);
// Listen to setting changes
@EventHandler
public void onSettingChange(PlayerSettingChangeEvent event) {
// React to changes
}See API.md for complete documentation.
🎯 Commands & Permissions
Commands
| Command | Description | Permission |
|---|---|---|
/settings |
Open settings GUI | bettersettings.use |
/settings reload |
Reload configuration | bettersettings.reload |
/settings info |
View plugin information | bettersettings.info |
Aliases: /setting, /prefs, /preferences
Permissions
| Permission | Description | Default |
|---|---|---|
bettersettings.use |
Access settings GUI | ✅ true |
bettersettings.reload |
Reload plugin config | 👑 op |
bettersettings.info |
View plugin info | 👑 op |
bettersettings.* |
All permissions | 👑 op |
Individual Setting Permissions:
bettersettings.flight- Access flight settingbettersettings.godmode- Access god mode settingbettersettings.vanish- Access vanish settingbettersettings.nightvision- Access night vision setting- And more... (see
settings.yml)
🎨 GUI Improvements
This release features a completely redesigned GUI:
Category Selection Menu
┌─────────────────────────────────────────────────────┐
│ 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲 ← Glass pane border
│ 🔲 · · · · · · · 🔲
│ 🔲 · 📝 👁️ ⚔️ 🛡️ 🔔 · 🔲 ← Categories (centered)
│ 🔲 · · · · · · · 🔲
│ 🔲 · · · · · · · 🔲
│ 🔲 · · · 📖 · · · 🔲 ← Info button
│ 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲
└─────────────────────────────────────────────────────┘
Settings View
┌─────────────────────────────────────────────────────┐
│ 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲 🔲 ← Glass pane border
│ 🔲 · ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ · 🔲 ← Settings (7 per row)
│ 🔲 · ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ · 🔲
│ 🔲 · ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ · 🔲
│ 🔲 · ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ ⚙️ · 🔲
│ 🔲 🔲 🔲 ◀️ 📖 ▶️ 🔲 🔲 🔲 ← Navigation
└─────────────────────────────────────────────────────┘
Features:
- Glass pane borders for professional appearance
- Centered layouts with proper spacing
- 28 settings per page (4 rows × 7 columns)
- Clear navigation buttons
- Consistent design across all menus
🔧 Technical Details
Requirements
- ☕ Java 21+
- 📄 Paper/Purpur/Folia 1.20.5+
- ✅ No external plugin dependencies
Compatibility
- ✅ Paper 1.20.5+
- ✅ Purpur 1.20.5+
- ✅ Folia (full support with regionized threading)
- ✅ Java 21+
Performance
- Async I/O with configurable concurrency
- Batch save operations for efficiency
- Smart caching with automatic cleanup
- Minimal object allocation
- Thread-safe data structures
- Folia-ready schedulers
File Size
- JAR: 96 KB
- With bStats: Included (shaded)
- Dependencies: None (Paper API provided by server)
📊 Statistics
- Total Settings: 60
- Functional Settings: 29 (48%)
- API Framework Settings: 31 (52%)
- Categories: 6 (including default)
- Configuration Files: 6
- Documentation Pages: 5
- Lines of Code: ~3,500+
🎯 What Works Out of the Box
✅ Fully Functional (No Additional Plugins Required)
Player Control:
- Flight, God Mode, Speed, Jump, Water Breathing, Fire Resistance
- Auto-Sprint, Auto-Respawn, Auto-Pickup
- Entity Collision
Protection:
- Drop Protection (sneak to drop)
- Inventory Protection
- Fall Damage Toggle
- Mob Targeting Toggle
- PvP Toggle
- Hunger Loss Toggle
Display:
- Scoreboard Visibility
- Player Visibility (hide/show players)
- Weather Control (client-side)
- Time Control (client-side)
- Night Vision
- Vanish Mode
- Tab List Visibility
Communication:
- Global Chat Toggle
- Private Messages Toggle
- Death Messages Toggle
- Join/Leave Messages Toggle
🔌 What Requires Integration
API Framework Settings (Save Preferences, Require Plugin Integration)
Social Features:
- Teleport Requests, Trade Requests, Friend Requests
- Chat Mentions, DM Sound
Notifications:
- All 11 notification settings (mob spawns, achievements, action bar, boss bar, titles, etc.)
Advanced Display:
- Coordinates Display, Biome Display
- Damage Indicators, AFK Status
- Particle Effects, Sound Effects (client-side)
Advanced Gameplay:
- Teleport Cooldown Bypass
- Build Mode
- Command Spy, Social Spy
For Plugin Developers:
These settings save player preferences that your plugin can check:
boolean acceptsTeleports = dataManager.getSetting(playerId, "bettersettings_tprequest", true);📖 Documentation
Included Documentation
- README.md - Overview and quick start
- API.md - Complete developer API documentation
- CONFIGURATION.md - Detailed configuration guide
- SETTINGS_STATUS.md - Implementation status of all settings
- CHANGELOG.md - Version history
- CONTRIBUTING.md - How to contribute
Online Resources
- 📚 GitHub Wiki
- 🐛 Issue Tracker
- 💬 Discussions
- 📊 bStats
🔮 Future Plans
Potential features for future releases:
- Additional functional settings (notifications, coordinates display, etc.)
- Setting presets/profiles
- Import/export functionality
- Web-based configuration editor
- More animation options
- Additional action types for YAML settings
- Integration examples with popular plugins
🐛 Known Issues
None at this time! This is a stable initial release.
If you encounter any issues, please report them on our Issue Tracker.
🤝 Contributing
We welcome contributions! Please read CONTRIBUTING.md for guidelines.
Ways to contribute:
- 🐛 Report bugs
- 💡 Suggest features
- 📝 Improve documentation
- 🔧 Submit pull requests
- ⭐ Star the repository
📄 License
BetterSettings is released under the MIT License.
You are free to:
- ✅ Use commercially
- ✅ Modify
- ✅ Distribute
- ✅ Use privately
See LICENSE file for full details.
🙏 Credits
Developed by: mattbaconz
📞 Support
Need help? Here's how to get support:
- Read the Documentation - Check README.md, API.md, and CONFIGURATION.md
- Check SETTINGS_STATUS.md - See which settings are functional
- Search Issues - Someone may have already asked your question
- Ask in Discussions - For general questions and help
- Report Bugs - Use the issue tracker for bugs
Please do not use issues for support questions. Use Discussions instead.
⭐ Show Your Support
If you find BetterSettings useful, please:
- ⭐ Star the repository on GitHub
- 📢 Share with other server owners
- 💬 Leave feedback in Discussions
- 🐛 Report bugs to help improve the plugin
- 💡 Suggest features for future releases
📝 Changelog
v1.0.0 (November 18, 2024)
- 🎉 Initial release
- ✅ 29 fully functional settings
- 🔌 31 API framework settings
- 🎨 Beautiful categorized GUI with glass pane borders
- 🔧 Complete developer API with event system
- 📚 Comprehensive documentation
- ⚡ Performance optimized with async I/O
- 🌐 Full Folia compatibility
- 🎯 Zero external dependencies
Download: BetterSettings-1.0.0.jar