diff --git a/COMMANDS/mod/_meta.ts b/COMMANDS/mod/_meta.ts
new file mode 100644
index 0000000..adfc5da
--- /dev/null
+++ b/COMMANDS/mod/_meta.ts
@@ -0,0 +1,4 @@
+const name = "mod";
+const description = "Perform mod actions";
+
+export { name, description };
\ No newline at end of file
diff --git a/COMMANDS/mod/ban.ts b/COMMANDS/mod/ban.ts
new file mode 100644
index 0000000..cddc794
--- /dev/null
+++ b/COMMANDS/mod/ban.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("ban")
+    .setDescription("Bans a user from the server")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/ban]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/clear.ts b/COMMANDS/mod/clear.ts
new file mode 100644
index 0000000..78909a9
--- /dev/null
+++ b/COMMANDS/mod/clear.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("clear")
+    .setDescription("Clears a users messages in a channel")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/clear]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/kick.ts b/COMMANDS/mod/kick.ts
new file mode 100644
index 0000000..895f035
--- /dev/null
+++ b/COMMANDS/mod/kick.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("kick")
+    .setDescription("Clears a users messages in a channel")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/kick]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/lock/_meta.ts b/COMMANDS/mod/lock/_meta.ts
new file mode 100644
index 0000000..73cc18e
--- /dev/null
+++ b/COMMANDS/mod/lock/_meta.ts
@@ -0,0 +1,4 @@
+const name = "lock";
+const description = "Quickly lock and unlock channels";
+
+export { name, description };
\ No newline at end of file
diff --git a/COMMANDS/mod/lock/add.ts b/COMMANDS/mod/lock/add.ts
new file mode 100644
index 0000000..cb89b55
--- /dev/null
+++ b/COMMANDS/mod/lock/add.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("add")
+    .setDescription("Adds a lock to a channel")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/lock/add]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/lock/remove.ts b/COMMANDS/mod/lock/remove.ts
new file mode 100644
index 0000000..698bee9
--- /dev/null
+++ b/COMMANDS/mod/lock/remove.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("remove")
+    .setDescription("Removes a lock from a channel")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/lock/remove]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/purge.ts b/COMMANDS/mod/purge.ts
new file mode 100644
index 0000000..7c52b13
--- /dev/null
+++ b/COMMANDS/mod/purge.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("purge")
+    .setDescription("Clears messages in a channel")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/purge]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/slowmode/_meta.ts b/COMMANDS/mod/slowmode/_meta.ts
new file mode 100644
index 0000000..4200b58
--- /dev/null
+++ b/COMMANDS/mod/slowmode/_meta.ts
@@ -0,0 +1,4 @@
+const name = "slowmode";
+const description = "Settings for slowmode in channels";
+
+export { name, description };
\ No newline at end of file
diff --git a/COMMANDS/mod/slowmode/clear.ts b/COMMANDS/mod/slowmode/clear.ts
new file mode 100644
index 0000000..3b09dea
--- /dev/null
+++ b/COMMANDS/mod/slowmode/clear.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("clear")
+    .setDescription("Clears slowmode from a channel")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/slowmode/clear]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/slowmode/set.ts b/COMMANDS/mod/slowmode/set.ts
new file mode 100644
index 0000000..a2dd7ca
--- /dev/null
+++ b/COMMANDS/mod/slowmode/set.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("clear")
+    .setDescription("Sets slowmode in a channel")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/slowmode/set]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/slowmode/toggle.ts b/COMMANDS/mod/slowmode/toggle.ts
new file mode 100644
index 0000000..fc44f75
--- /dev/null
+++ b/COMMANDS/mod/slowmode/toggle.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("clear")
+    .setDescription("Toggles slowmode in a channel")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/slowmode/toggle]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/softban.ts b/COMMANDS/mod/softban.ts
new file mode 100644
index 0000000..19db3c2
--- /dev/null
+++ b/COMMANDS/mod/softban.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("softban")
+    .setDescription("Softbans a user")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/softban]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/unban.ts b/COMMANDS/mod/unban.ts
new file mode 100644
index 0000000..fe2133e
--- /dev/null
+++ b/COMMANDS/mod/unban.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("unban")
+    .setDescription("Unbans a user")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/unban]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/viewas.ts b/COMMANDS/mod/viewas.ts
new file mode 100644
index 0000000..fc5474f
--- /dev/null
+++ b/COMMANDS/mod/viewas.ts
@@ -0,0 +1,19 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setDescription("View the server as a specific member")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/viewas]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/COMMANDS/mod/warn.ts b/COMMANDS/mod/warn.ts
new file mode 100644
index 0000000..f050ef2
--- /dev/null
+++ b/COMMANDS/mod/warn.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("warn")
+    .setDescription("Warns a user")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Command incomplete [mod/warn]");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return true;
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
