diff --git a/resource/plugin.yml b/resource/plugin.yml
index 8a2e0f8..55f8145 100644
--- a/resource/plugin.yml
+++ b/resource/plugin.yml
@@ -1,4 +1,4 @@
-version: 3.21.4.0
+version: 3.21.4.1
 main: me.rockyhawk.commandpanels.CommandPanels
 name: CommandPanels
 author: RockyHawk
diff --git a/src/me/rockyhawk/commandpanels/CommandPanels.java b/src/me/rockyhawk/commandpanels/CommandPanels.java
index 7d113f5..f271228 100644
--- a/src/me/rockyhawk/commandpanels/CommandPanels.java
+++ b/src/me/rockyhawk/commandpanels/CommandPanels.java
@@ -197,8 +197,11 @@ public class CommandPanels extends JavaPlugin{
         }
 
         try {
-            // Check for a class that exists only in Paper
-            Class.forName("com.destroystokyo.paper.PaperConfig");
+            // Check all the minimessage classes exist before loading
+            Class.forName("net.kyori.adventure.text.Component");
+            Class.forName("net.kyori.adventure.text.format.TextDecoration");
+            Class.forName("net.kyori.adventure.text.minimessage.MiniMessage");
+            Class.forName("net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer");
             miniMessage = new MiniMessageUtils(this);
         } catch (ClassNotFoundException ignore) {
             //do not initialise miniMessage
diff --git a/src/me/rockyhawk/commandpanels/floodgatecp/OpenFloodgateGUI.java b/src/me/rockyhawk/commandpanels/floodgatecp/OpenFloodgateGUI.java
index d1caff4..db65630 100644
--- a/src/me/rockyhawk/commandpanels/floodgatecp/OpenFloodgateGUI.java
+++ b/src/me/rockyhawk/commandpanels/floodgatecp/OpenFloodgateGUI.java
@@ -85,7 +85,7 @@ public class OpenFloodgateGUI implements Listener {
                     ConfigurationSection buttonConfig = fgPanel.getConfigurationSection(key + section);
                     if (buttonConfig == null) return null;
 
-                    String buttonContent = plugin.tex.placeholders(panel, null, p, buttonConfig.getString("text"));
+                    String buttonContent = plugin.tex.placeholders(panel, null, p, buttonConfig.getString("text").replaceAll("\\\\n", "\n"));
                     if (!buttonConfig.contains("icon")) {
                         form.button(buttonContent);
                     } else {
@@ -116,12 +116,12 @@ public class OpenFloodgateGUI implements Listener {
                     }
                     switch (type) {
                         case "toggle":
-                            form.toggle(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("text")),
+                            form.toggle(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("text").replaceAll("\\\\n", "\n")),
                                     Boolean.parseBoolean(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("default"))));
                             commandsOrder.add(key);
                             break;
                         case "slider":
-                            form.slider(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("text")),
+                            form.slider(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("text").replaceAll("\\\\n", "\n")),
                                     Long.parseLong(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("min"))),
                                     Long.parseLong(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("max"))),
                                     Long.parseLong(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("step"))),
@@ -129,13 +129,13 @@ public class OpenFloodgateGUI implements Listener {
                             commandsOrder.add(key);
                             break;
                         case "input":
-                            form.input(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("text")),
+                            form.input(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("text").replaceAll("\\\\n", "\n")),
                                     plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("placeholder")),
                                     plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("default")));
                             commandsOrder.add(key);
                             break;
                         case "dropdown":
-                            form.dropdown(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("text")),
+                            form.dropdown(plugin.tex.placeholders(e.getPanel(), null, e.getPlayer(), fieldConfig.getString("text").replaceAll("\\\\n", "\n")),
                                     plugin.tex.placeholdersList(e.getPanel(), null, e.getPlayer(), fieldConfig.getStringList("options"), true));
                             commandsOrder.add(key);
                             break;