diff --git a/src/commands/createTestButton.ts b/src/commands/createTestButton.ts
new file mode 100644
index 0000000..71f9ef1
--- /dev/null
+++ b/src/commands/createTestButton.ts
@@ -0,0 +1,35 @@
+import { CommandInteraction, MessageActionRow, MessageButton } from "discord.js";
+import { SlashCommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = new SlashCommandBuilder()
+    .setName("createtestbutton")
+    .setDescription("creates a test button")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply({components: [new MessageActionRow().addComponents([
+        new MessageButton()
+            .setCustomId("createticket")
+            .setLabel("Create Ticket")
+            .setStyle("PRIMARY")
+            .setDisabled(false),
+        new MessageButton()
+            .setCustomId("verifybutton")
+            .setLabel("Verify")
+            .setStyle("PRIMARY")
+            .setDisabled(false),
+        new MessageButton()
+            .setCustomId("rolemenu")
+            .setLabel("Get roles")
+            .setStyle("PRIMARY")
+            .setDisabled(false)
+    ])]});
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
