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.

Where can I download it?
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

Can I use color codes?

Yes! Two formats supported:

MiniMessage (Recommended):

Legacy Codes:

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 servers list

  • Same 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 servers list

  • Restart 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.

Can I use a custom MySQL port?

Yes! In config.yml:

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.create

  • announcegui.edit

  • announcegui.delete

  • etc.

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 /announcegui command

🔧 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

What Java version is required?

Java 17 or higher

Check your version:

Update if needed.

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

What format are exports?

JSON format, human-readable.

Example:

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:

  1. Not enabled: Check status in GUI

  2. Wrong target: Check target server matches current server

  3. ALL disabled: Check enableAllServersAnnouncements in config

  4. Interval not reached: Wait full interval period

Solution: See Troubleshooting Guide

Why aren't placeholders working?

Common causes:

  1. PlaceholderAPI not installed: Install PlaceholderAPI

  2. Missing expansion: Install required expansion

  3. Wrong syntax: Verify placeholder format

Solution:

See: PlaceholderAPI Integration

Why isn't MySQL syncing?

Common causes:

  1. Different databases: Verify all servers use same database

  2. Connection issue: Test MySQL connectivity

  3. Polling interval: Wait at least polling interval duration

Solution: See Multi-Server Setup and Troubleshooting

GUI not opening?

Common causes:

  1. No permission: Need announcegui.admin

  2. Plugin not loaded: Check /plugins

  3. Console 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?
  1. Check documentation (this wiki)

  2. Check Troubleshooting Guide

  3. Check FAQ (this page)

  4. 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:

Message Type
Recommended Interval

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.db

  • Before changes: Manual export before major edits

  • Weekly: Copy backups to external storage

MySQL:

  • Daily: Automated MySQL dump

  • Before changes: Export via /announcegui export

  • Weekly: 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

  • 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