diff --git a/src/util/plugin/plugin_data_objects/ChannelCreateEventArgs.ts b/src/util/plugin/plugin_data_objects/ChannelCreateEventArgs.ts
new file mode 100644
index 00000000..ce7dec87
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/ChannelCreateEventArgs.ts
@@ -0,0 +1,7 @@
+export interface PreChannelCreateEventArgs {
+
+}
+
+export interface OnChannelCreateEventArgs {
+
+}
diff --git a/src/util/plugin/plugin_data_objects/GuildCreateEventArgs.ts b/src/util/plugin/plugin_data_objects/GuildCreateEventArgs.ts
new file mode 100644
index 00000000..e10e675a
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/GuildCreateEventArgs.ts
@@ -0,0 +1,7 @@
+export interface PreGuildCreateEventArgs {
+
+}
+
+export interface OnGuildCreateEventArgs {
+
+}
diff --git a/src/util/plugin/plugin_data_objects/LoginEventArgs.ts b/src/util/plugin/plugin_data_objects/LoginEventArgs.ts
new file mode 100644
index 00000000..391b852e
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/LoginEventArgs.ts
@@ -0,0 +1,7 @@
+export interface PreLoginEventArgs {
+
+}
+
+export interface OnLoginEventArgs {
+
+}
diff --git a/src/util/plugin/plugin_data_objects/MessageEventArgs.ts b/src/util/plugin/plugin_data_objects/MessageEventArgs.ts
new file mode 100644
index 00000000..0a3498c2
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/MessageEventArgs.ts
@@ -0,0 +1,7 @@
+export interface PreMessageEventArgs {
+
+}
+
+export interface OnMessageEventArgs {
+
+}
diff --git a/src/util/plugin/plugin_data_objects/PluginLoadedEventArgs.ts b/src/util/plugin/plugin_data_objects/PluginLoadedEventArgs.ts
new file mode 100644
index 00000000..58829f15
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/PluginLoadedEventArgs.ts
@@ -0,0 +1,3 @@
+export interface PluginLoadedEventArgs {
+
+}
\ No newline at end of file
diff --git a/src/util/plugin/plugin_data_objects/RegisterEventArgs.ts b/src/util/plugin/plugin_data_objects/RegisterEventArgs.ts
new file mode 100644
index 00000000..7f7c0c76
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/RegisterEventArgs.ts
@@ -0,0 +1,7 @@
+export interface PreRegisterEventArgs {
+
+}
+
+export interface OnRegisterEventArgs {
+
+}
diff --git a/src/util/plugin/plugin_data_objects/TypingEventArgs.ts b/src/util/plugin/plugin_data_objects/TypingEventArgs.ts
new file mode 100644
index 00000000..f6660692
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/TypingEventArgs.ts
@@ -0,0 +1,7 @@
+export interface PreTypingEventArgs {
+
+}
+
+export interface OnTypingEventArgs {
+
+}
diff --git a/src/util/plugin/plugin_data_objects/_gen.sh b/src/util/plugin/plugin_data_objects/_gen.sh
new file mode 100755
index 00000000..9fbd1749
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/_gen.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+while read event
+do
+ if [ ! -f "${event}EventArgs.ts" ]
+ then
+ echo Making event $event...
+ (
+ echo "export interface Pre${event}EventArgs {"
+ echo ' '
+ echo '}'
+ echo ''
+ echo "export interface On${event}EventArgs {"
+ echo ' '
+ echo '}'
+ ) > ${event}EventArgs.ts
+ fi
+done < _pdo
+
+echo ''
+
+node ../../../../scripts/gen_index.js .. --recursive
\ No newline at end of file
diff --git a/src/util/plugin/plugin_data_objects/_pdo b/src/util/plugin/plugin_data_objects/_pdo
new file mode 100644
index 00000000..fa207f77
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/_pdo
@@ -0,0 +1,7 @@
+Register
+Message
+Login
+GuildCreate
+ChannelCreate
+Typing
+StatusChange
\ No newline at end of file
diff --git a/src/util/plugin/plugin_data_objects/_todo.txt b/src/util/plugin/plugin_data_objects/_todo.txt
new file mode 100644
index 00000000..a6a78c7e
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/_todo.txt
@@ -0,0 +1 @@
+Voice events when we do voice.
\ No newline at end of file
diff --git a/src/util/plugin/plugin_data_objects/index.ts b/src/util/plugin/plugin_data_objects/index.ts
new file mode 100644
index 00000000..c75d43f9
--- /dev/null
+++ b/src/util/plugin/plugin_data_objects/index.ts
@@ -0,0 +1,7 @@
+export * from "./ChannelCreateEventArgs";
+export * from "./GuildCreateEventArgs";
+export * from "./LoginEventArgs";
+export * from "./MessageEventArgs";
+export * from "./PluginLoadedEventArgs";
+export * from "./RegisterEventArgs";
+export * from "./TypingEventArgs";
|