FAQ
Common questions and answers about AnnouncementGUI.
📋 General Questions
What is AnnouncementGUI?
AnnouncementGUI is a Minecraft plugin that provides an easy-to-use graphical interface for creating and managing scheduled server announcements. It supports multi-server networks with real-time synchronization.
What servers are supported?
Supported:
Paper 1.21+
Folia (any version)
Not Supported:
Spigot
CraftBukkit
Bukkit
Older Paper versions (<1.21)
Do I need PlaceholderAPI?
No, PlaceholderAPI is optional but highly recommended for:
Dynamic player information
Server statistics
Integration with other plugins
Without PlaceholderAPI, you can still use:
Static messages
Color codes (legacy & MiniMessage)
All other features
Is it free?
AnnouncementGUI is a premium plugin. Please check the official release page or contact the developer for pricing and licensing information.
How do I update?
BackupBackup your plugins/AnnouncementGUI/ folderStop serverStop your serverReplace JARReplace the old JAR with the new oneStart serverStart your serverConfiguration and data are preserved across updates.
🎮 Usage Questions
How do I create an announcement?
Open GUI/announceguiCreateClick "Create" (green)ConfigureSet name, message, interval, serverSaveClick "Save"
Detailed Guide: GUI Guide
How do I edit an announcement?
Run /announceguiClick "Edit" (gold)Click announcement to modifyMake changesClick "Save"
How do I delete an announcement?
Method 1: From Main Menu
Run /announceguiClick "Delete" (red)Click announcementConfirm deletion
Method 2: From Edit Screen
Edit announcementClick "Delete" buttonConfirm
How do I temporarily stop an announcement?
Don't delete it! Use toggle:
/announcegui → EditSelect announcementClick "Toggle Status"Click "Save"Status changes to "✗ Disabled" and stops broadcasting.
Can I have different announcements on different servers?
Yes! Set the "Server" field when creating announcements:
Specific server: Type server ID (e.g., "lobby", "survival")
All servers: Type "ALL"
Each announcement can target a different server.
What's the minimum interval?
Technical minimum: 1 second Recommended minimum: 60 seconds (1 minute)
Very short intervals may cause:
Chat spam
Performance issues
Player annoyance
Common intervals:
5 minutes (300s) - Frequent updates
10 minutes (600s) - Regular reminders
30 minutes (1800s) - Periodic information
How many lines can an announcement have?
No limit! Add as many lines as you need.
Recommendations:
3-5 lines: Easy to read, not overwhelming
1-2 lines: Quick messages, simple reminders
6+ lines: Detailed information, infrequent broadcasts
Can I schedule announcements for specific times?
Not currently. AnnouncementGUI uses intervals, not specific times.
Workaround:
Calculate interval to match desired timeStart announcement at specific timeAdjust as needed
Example: For hourly announcements at :00:
Set interval to 3600 seconds
Start at the beginning of an hour
Can I target specific players or groups?
No. Announcements are broadcast to:
All players on the target server(s)
Cannot target specific players
Cannot target permission groups
Workaround with PlaceholderAPI: Use conditional placeholders (requires special expansion) to show different content based on player properties.
🏗️ Multi-Server Questions
Do I need MySQL for multi-server?
Yes, for real-time synchronization across servers, MySQL is required.
SQLite alternative:
Only works for single server
OR servers sharing filesystem (not recommended)
Can I use SQLite on multiple servers?
Not recommended. SQLite is file-based and:
Doesn't support concurrent access well
No real-time synchronization
Risk of database corruption
For multi-server: Always use MySQL.
How fast do changes sync?
Default: 10 seconds (configurable)
Configuration:
Factors:
Polling interval setting
Network latency
MySQL performance
Typical sync time: 5-15 seconds
Do I need BungeeCord/Velocity?
No. AnnouncementGUI works with:
Single standalone servers
Multiple standalone servers (with MySQL)
BungeeCord/Velocity networks
Any configuration
BungeeCord/Velocity is not required for multi-server synchronization.
Can I have different configs per server?
Yes! Each server has its own config.yml:
Different
localServerId(required)Should match servers in
serverslistSame MySQL credentials (for sync) recommended
Different
enableAllServersAnnouncements(optional)
What if MySQL goes down?
Impact:
Existing announcements continue running (cached)
New announcements cannot be created
Changes won't sync to other servers
Recovery:
Fix MySQL connection
Restart servers
Changes will sync once MySQL is back
Recommendation: Use reliable MySQL hosting with backups.
⚙️ Configuration Questions
Where is the config file?
Location: plugins/AnnouncementGUI/config.yml
Edit: Stop server, edit file, start server
How do I change the server ID?
Edit config.yml:
Requirements:
Must be unique per server
Should match servers in
serverslistRestart server after change
Can I customize GUI messages?
Yes! Edit plugins/AnnouncementGUI/gui-messages.yml
Customize:
Prefix
Chat prompts
Confirmation messages
Error messages
Example:
Restart server after changes.
Can I change GUI layout?
Yes, but advanced. Edit files in plugins/AnnouncementGUI/guis/
Customizable:
Item materials
Item positions
Names and lore
GUI titles
Requires: Server restart after changes
Recommendation: Make backups before editing.
How do I disable ALL announcements on a server?
Edit config.yml:
Server will only run announcements specifically targeting its localServerId.
How do I enable SSL for MySQL?
Edit config.yml:
Requirements:
MySQL server configured for SSL
Valid SSL certificates
Client certificates (if required)
🔒 Permission Questions
What permissions exist?
Only one: announcegui.admin
Grants full access to:
All commands
All GUI features
Create, edit, delete announcements
Can I give limited permissions?
Not currently. Only full access via announcegui.admin.
Future: Granular permissions may be added:
announcegui.createannouncegui.editannouncegui.deleteetc.
Do OPs have permission by default?
Yes, OPs have all permissions by default, including announcegui.admin.
To restrict:
Remove OP statusGrant specific permissions via permission plugin
Can regular players see announcements?
Yes! All players see announcements, regardless of permissions.
Permission only controls:
Who can create/edit/delete announcements
Who can use
/announceguicommand
🔧 Technical Questions
What database is used?
Two options:
SQLite (Default):
File-based database
No setup required
Good for single servers
MySQL:
Client-server database
Requires MySQL server
Required for multi-server
Is PlaceholderAPI required?
No, PlaceholderAPI is optional (soft dependency).
With PlaceholderAPI:
Use placeholders like
%player_name%Dynamic, player-specific content
Integration with other plugins
Without PlaceholderAPI:
Static messages only
All other features work fine
No placeholders
Does it work with Folia?
Yes! Full Folia support with:
Region-based scheduling
Thread-safe operations
Optimized for Folia's architecture
Does it work on older Minecraft versions?
No. Requires:
Minecraft 1.21+
Paper or Folia
Why?
Uses Paper-specific APIs
Modern API versions
Better performance and features
For older versions:
Look for alternative plugins
Update server to 1.21+
Can I use it with Spigot/Bukkit?
No. AnnouncementGUI requires Paper or Folia.
Why Paper?
Better performance
More features
Modern APIs
Auto library loading
Recommendation: Switch to Paper (drop-in replacement for Spigot).
How much RAM does it use?
Minimal. Approximately:
Base: 5-10 MB
Per announcement: <1 MB
Database cache: 1-5 MB
Total: Usually <20 MB even with many announcements.
Does it affect server TPS?
Minimal impact with proper configuration:
Async database operations
Efficient scheduling
Optimized broadcasts
Potential impact:
Placeholders: More CPU (per-player parsing)
Frequent broadcasts: More CPU
Many announcements: More memory
Best practices:
Use reasonable intervals (5+ minutes)
Limit placeholder usage
Don't overuse announcements
📤 Import/Export Questions
Can I edit exported files?
Yes! Exported JSON can be edited:
Export announcementsEdit JSON file with text editorValidate JSON syntaxImport back
Use cases:
Bulk edit intervals
Change target servers
Duplicate announcements (change IDs!)
Can I share announcement packs?
Yes! Export and share JSON files.
Export on your serverShare JSON fileOthers import on their servers
Great for:
Templates
Pre-configured setups
Community sharing
What's the difference between merge and replace?
Merge (Default):
Adds to existing
Keeps current announcements
Safe option
Replace:
Deletes all existing
Only imported remain
Dangerous! Backup first
Can I import from other announcement plugins?
Not directly. Different plugins use different formats.
Workaround:
Manually recreate in AnnouncementGUIOR write conversion scriptUse JSON export format
🐛 Troubleshooting Questions
Why aren't announcements showing?
Common causes:
Not enabled: Check status in GUI
Wrong target: Check target server matches current server
ALL disabled: Check
enableAllServersAnnouncementsin configInterval not reached: Wait full interval period
Solution: See Troubleshooting Guide
Why aren't placeholders working?
Common causes:
PlaceholderAPI not installed: Install PlaceholderAPI
Missing expansion: Install required expansion
Wrong syntax: Verify placeholder format
Solution:
See: PlaceholderAPI Integration
Why isn't MySQL syncing?
Common causes:
Different databases: Verify all servers use same database
Connection issue: Test MySQL connectivity
Polling interval: Wait at least polling interval duration
Solution: See Multi-Server Setup and Troubleshooting
GUI not opening?
Common causes:
No permission: Need
announcegui.adminPlugin not loaded: Check
/pluginsConsole usage: Must be player
Solution:
Import fails with "parse error"?
Cause: Invalid JSON syntax
Solution:
Validate JSON at JSONLintCheck for:Missing commasMissing bracketsMissing quotesExtra commasFix errors and try again
🆘 Support Questions
Where can I get help?
Check documentation (this wiki)
Check Troubleshooting Guide
Check FAQ (this page)
Search GitHub Issues
Create new issue with details
How do I report a bug?
Create GitHub issue with:
Plugin version: From /pluginsServer version: From /versionDescription: What's wrong?Steps to reproduce: How to trigger bug?Expected behavior: What should happen?Actual behavior: What actually happens?Logs: Console errorsConfig: Your config.yml (remove passwords!)
How do I request a feature?
Check existing feature requests: GitHub IssuesIf not exists, create new issue:Use "Feature Request" labelDescribe feature clearlyExplain use caseProvide examples if possible
Is there a Discord/Forum?
Check the main GitHub repository for:
Discord link (if available)
Community forums
Discussion boards
Can I contribute?
For bug reports and feature requests:
Bug Reports:
Report bugs via GitHub Issues
Provide detailed information
Include logs and configuration
Feature Requests:
Submit via GitHub Issues
Describe your use case
Explain the benefit
Community:
Help other users
Answer questions
Share configurations
💡 Best Practices Questions
How many announcements should I have?
Recommendation: 5-10 announcements per server
Why?
Avoids chat spam
Players don't ignore messages
Easier to manage
Categories:
1-2 welcome messages
1-2 server rules/info
1-2 vote reminders
1-2 event announcements
1-2 tips/tricks
What's the best interval?
Depends on message type:
Welcome messages
5-10 minutes
Vote reminders
10-15 minutes
Server rules
15-30 minutes
Tips and tricks
15-30 minutes
Event announcements
30-60 minutes
Rare information
60+ minutes
General rule: Longer is better than too short.
Should I use placeholders in every announcement?
No. Use sparingly:
With placeholders:
Personalized messages
Dynamic content
Player-specific info
Without placeholders:
General information
Static messages
Better performance
Ratio: 1-2 with placeholders, rest without
How often should I backup?
Recommendations:
SQLite:
Daily: Automated backup of
announcements.dbBefore changes: Manual export before major edits
Weekly: Copy backups to external storage
MySQL:
Daily: Automated MySQL dump
Before changes: Export via
/announcegui exportWeekly: Full MySQL backup to external storage
Should I use MySQL or SQLite?
Use SQLite if:
Single server
Simple setup
Don't need multi-server sync
Use MySQL if:
Multiple servers
Need real-time sync
Network environment
Professional setup
Still have questions?
Check other wiki pages for detailed information
Search GitHub Issues
Create new issue if your question isn't answered
Related Documentation:
Installation Guide - Getting started
Configuration Guide - Configuration details
Commands Guide - All commands
Troubleshooting - Common issues
Features Guide - All features