diff --git a/lib/helpers/constants.rb b/lib/helpers/constants.rb
index 5d80c6491..d0e0029d7 100644
--- a/lib/helpers/constants.rb
+++ b/lib/helpers/constants.rb
@@ -47,6 +47,7 @@ STORY_DIR = "#{ROOT_DIR}/lib/resources/narrative"
BLACKLISTED_WORDS_FILE = "#{ROOT_DIR}/lib/resources/blacklisted_words/blacklist.txt"
IMAGES_DIR = "#{ROOT_DIR}/lib/resources/images"
ASCII_ART_DIR = "#{ROOT_DIR}/lib/resources/ascii_art"
+EVIL_PLANS_DIR = "#{ROOT_DIR}/lib/resources/narrative/evil_plans"
PASSWORDLISTS_DIR = "#{ROOT_DIR}/lib/resources/passwordlists"
WS_ATTACK_DIR = "#{ROOT_DIR}/lib/resources/ws_attacks"
STYLING_DIR = "#{ROOT_DIR}/lib/resources/website_styling"
diff --git a/lib/resources/narrative/evidence/OperationBlackout b/lib/resources/narrative/evil_plans/OperationBlackout
similarity index 100%
rename from lib/resources/narrative/evidence/OperationBlackout
rename to lib/resources/narrative/evil_plans/OperationBlackout
diff --git a/lib/resources/narrative/evidence/OperationBrainwash b/lib/resources/narrative/evil_plans/OperationBrainwash
similarity index 100%
rename from lib/resources/narrative/evidence/OperationBrainwash
rename to lib/resources/narrative/evil_plans/OperationBrainwash
diff --git a/lib/resources/narrative/evidence/OperationCthulhuRising b/lib/resources/narrative/evil_plans/OperationCthulhuRising
similarity index 100%
rename from lib/resources/narrative/evidence/OperationCthulhuRising
rename to lib/resources/narrative/evil_plans/OperationCthulhuRising
diff --git a/lib/resources/narrative/evidence/OperationCyberApocalypse b/lib/resources/narrative/evil_plans/OperationCyberApocalypse
similarity index 100%
rename from lib/resources/narrative/evidence/OperationCyberApocalypse
rename to lib/resources/narrative/evil_plans/OperationCyberApocalypse
diff --git a/lib/resources/narrative/evidence/OperationGenesis b/lib/resources/narrative/evil_plans/OperationGenesis
similarity index 100%
rename from lib/resources/narrative/evidence/OperationGenesis
rename to lib/resources/narrative/evil_plans/OperationGenesis
diff --git a/lib/resources/narrative/evidence/OperationJudgmentDay b/lib/resources/narrative/evil_plans/OperationJudgmentDay
similarity index 100%
rename from lib/resources/narrative/evidence/OperationJudgmentDay
rename to lib/resources/narrative/evil_plans/OperationJudgmentDay
diff --git a/lib/resources/narrative/evidence/OperationNightfall b/lib/resources/narrative/evil_plans/OperationNightfall
similarity index 100%
rename from lib/resources/narrative/evidence/OperationNightfall
rename to lib/resources/narrative/evil_plans/OperationNightfall
diff --git a/lib/resources/narrative/evidence/OperationOmegaProtocol b/lib/resources/narrative/evil_plans/OperationOmegaProtocol
similarity index 100%
rename from lib/resources/narrative/evidence/OperationOmegaProtocol
rename to lib/resources/narrative/evil_plans/OperationOmegaProtocol
diff --git a/lib/resources/narrative/evidence/OperationProjectArmageddon b/lib/resources/narrative/evil_plans/OperationProjectArmageddon
similarity index 100%
rename from lib/resources/narrative/evidence/OperationProjectArmageddon
rename to lib/resources/narrative/evil_plans/OperationProjectArmageddon
diff --git a/lib/resources/narrative/evidence/OperationShadowGames b/lib/resources/narrative/evil_plans/OperationShadowGames
similarity index 100%
rename from lib/resources/narrative/evidence/OperationShadowGames
rename to lib/resources/narrative/evil_plans/OperationShadowGames
diff --git a/lib/resources/narrative/evidence/OperationSilentWar b/lib/resources/narrative/evil_plans/OperationSilentWar
similarity index 100%
rename from lib/resources/narrative/evidence/OperationSilentWar
rename to lib/resources/narrative/evil_plans/OperationSilentWar
diff --git a/lib/resources/narrative/evidence/OperationWorldDomination b/lib/resources/narrative/evil_plans/OperationWorldDomination
similarity index 100%
rename from lib/resources/narrative/evidence/OperationWorldDomination
rename to lib/resources/narrative/evil_plans/OperationWorldDomination
diff --git a/modules/generators/messages/random_evil_diary/manifests/.no_puppet b/modules/generators/messages/random_evil_diary/manifests/.no_puppet
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_diary/random_evil_diary.pp b/modules/generators/messages/random_evil_diary/random_evil_diary.pp
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_diary/secgen_local/local.rb b/modules/generators/messages/random_evil_diary/secgen_local/local.rb
new file mode 100644
index 000000000..f09d951d8
--- /dev/null
+++ b/modules/generators/messages/random_evil_diary/secgen_local/local.rb
@@ -0,0 +1,17 @@
+#!/usr/bin/ruby
+require_relative '../../../../../lib/objects/local_string_generator.rb'
+
+class EvilDiaryGenerator < StringGenerator
+
+ def initialize
+ super
+ self.module_name = 'Random Evil Diary Generator'
+ end
+
+ def generate
+ self.outputs << [*File.readlines("#{LINELISTS_DIR}/diary_boring").sample(4),
+ *File.readlines("#{LINELISTS_DIR}/diary_evil").sample(4)].join
+ end
+end
+
+EvilDiaryGenerator.new.run
diff --git a/modules/generators/messages/random_evil_diary/secgen_metadata.xml b/modules/generators/messages/random_evil_diary/secgen_metadata.xml
new file mode 100644
index 000000000..8493cb89f
--- /dev/null
+++ b/modules/generators/messages/random_evil_diary/secgen_metadata.xml
@@ -0,0 +1,18 @@
+
+
+
+ Random Evil Diary Generator
+ Z. Cliffe Schreuders
+ MIT
+ Generates an evil diary, with a combination of normal, and evil entries.
+
+ evil_file_generator
+ local_calculation
+ linux
+ windows
+
+ generated_strings
+
+
diff --git a/modules/generators/messages/random_evil_life_goals/manifests/.no_puppet b/modules/generators/messages/random_evil_life_goals/manifests/.no_puppet
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_life_goals/random_evil_life_goals.pp b/modules/generators/messages/random_evil_life_goals/random_evil_life_goals.pp
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_life_goals/secgen_local/local.rb b/modules/generators/messages/random_evil_life_goals/secgen_local/local.rb
new file mode 100644
index 000000000..526310edb
--- /dev/null
+++ b/modules/generators/messages/random_evil_life_goals/secgen_local/local.rb
@@ -0,0 +1,17 @@
+#!/usr/bin/ruby
+require_relative '../../../../../lib/objects/local_string_generator.rb'
+
+class EvilLifeGoalsGenerator < StringGenerator
+
+ def initialize
+ super
+ self.module_name = 'Random Evil Life Goals Generator'
+ end
+
+ def generate
+ self.outputs << ["My Goals:\n", *File.readlines("#{LINELISTS_DIR}/life_goals").sample(2),
+ *File.readlines("#{LINELISTS_DIR}/life_goals_evil").sample(2)].join
+ end
+end
+
+EvilLifeGoalsGenerator.new.run
diff --git a/modules/generators/messages/random_evil_life_goals/secgen_metadata.xml b/modules/generators/messages/random_evil_life_goals/secgen_metadata.xml
new file mode 100644
index 000000000..4d04480a1
--- /dev/null
+++ b/modules/generators/messages/random_evil_life_goals/secgen_metadata.xml
@@ -0,0 +1,18 @@
+
+
+
+ Random Evil Life Goals Generator
+ Z. Cliffe Schreuders
+ MIT
+ Generates an evil list of goals, with a combination of normal, and evil entries.
+
+ evil_file_generator
+ local_calculation
+ linux
+ windows
+
+ generated_strings
+
+
diff --git a/modules/generators/messages/random_evil_operatives/manifests/.no_puppet b/modules/generators/messages/random_evil_operatives/manifests/.no_puppet
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_operatives/random_evil_operatives.pp b/modules/generators/messages/random_evil_operatives/random_evil_operatives.pp
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_operatives/secgen_local/local.rb b/modules/generators/messages/random_evil_operatives/secgen_local/local.rb
new file mode 100644
index 000000000..ae196f8f8
--- /dev/null
+++ b/modules/generators/messages/random_evil_operatives/secgen_local/local.rb
@@ -0,0 +1,17 @@
+#!/usr/bin/ruby
+require_relative '../../../../../lib/objects/local_string_generator.rb'
+
+class EvilOperativesGenerator < StringGenerator
+
+ def initialize
+ super
+ self.module_name = 'Random Evil Life Goals Generator'
+ end
+
+ def generate
+ # read all the lines, and select 5 at random
+ self.outputs << File.readlines("#{LINELISTS_DIR}/operatives_evil").sample(5).join
+ end
+end
+
+EvilOperativesGenerator.new.run
diff --git a/modules/generators/messages/random_evil_operatives/secgen_metadata.xml b/modules/generators/messages/random_evil_operatives/secgen_metadata.xml
new file mode 100644
index 000000000..70fdf8f99
--- /dev/null
+++ b/modules/generators/messages/random_evil_operatives/secgen_metadata.xml
@@ -0,0 +1,18 @@
+
+
+
+ Random Evil Operatives Generator
+ Z. Cliffe Schreuders
+ MIT
+ Generates an evil list of operatives.
+
+ evil_file_generator
+ local_calculation
+ linux
+ windows
+
+ generated_strings
+
+
diff --git a/modules/generators/messages/random_evil_plans/manifests/.no_puppet b/modules/generators/messages/random_evil_plans/manifests/.no_puppet
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_plans/random_evil_plans.pp b/modules/generators/messages/random_evil_plans/random_evil_plans.pp
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_plans/secgen_local/local.rb b/modules/generators/messages/random_evil_plans/secgen_local/local.rb
new file mode 100644
index 000000000..cc62de5a5
--- /dev/null
+++ b/modules/generators/messages/random_evil_plans/secgen_local/local.rb
@@ -0,0 +1,16 @@
+#!/usr/bin/ruby
+require 'base64'
+require_relative '../../../../../lib/objects/local_string_generator.rb'
+class EvilPlansGenerator < StringGenerator
+ def initialize
+ super
+ self.module_name = 'Random Evil Plans File Generator'
+ end
+
+ def generate
+ selected_path = Dir["#{EVIL_PLANS_DIR}/*"].sample
+ self.outputs << File.read(selected_path)
+ end
+end
+
+EvilPlansGenerator.new.run
diff --git a/modules/generators/messages/random_evil_plans/secgen_metadata.xml b/modules/generators/messages/random_evil_plans/secgen_metadata.xml
new file mode 100644
index 000000000..822b4e7d6
--- /dev/null
+++ b/modules/generators/messages/random_evil_plans/secgen_metadata.xml
@@ -0,0 +1,18 @@
+
+
+
+ Random Evil Plans Generator
+ Z. Cliffe Schreuders
+ MIT
+ Selects and outputs random evil file from the lib/resources/narrative/evil_plans directory.
+
+ evil_file_generator
+ local_calculation
+ linux
+ windows
+
+ ascii_art
+
+
diff --git a/modules/generators/messages/random_evil_transaction_history/manifests/.no_puppet b/modules/generators/messages/random_evil_transaction_history/manifests/.no_puppet
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_transaction_history/random_evil_transaction_history.pp b/modules/generators/messages/random_evil_transaction_history/random_evil_transaction_history.pp
new file mode 100644
index 000000000..e69de29bb
diff --git a/modules/generators/messages/random_evil_transaction_history/secgen_local/local.rb b/modules/generators/messages/random_evil_transaction_history/secgen_local/local.rb
new file mode 100644
index 000000000..bf0179bbd
--- /dev/null
+++ b/modules/generators/messages/random_evil_transaction_history/secgen_local/local.rb
@@ -0,0 +1,17 @@
+#!/usr/bin/ruby
+require_relative '../../../../../lib/objects/local_string_generator.rb'
+
+class EvilTransactionHistoryGenerator < StringGenerator
+
+ def initialize
+ super
+ self.module_name = 'Random Evil Transaction History Generator'
+ end
+
+ def generate
+ # read all the lines, and select one at random
+ self.outputs.push *File.readlines("#{LINELISTS_DIR}/transaction_history_evil").sample(5)
+ end
+end
+
+EvilTransactionHistoryGenerator.new.run
diff --git a/modules/generators/messages/random_evil_transaction_history/secgen_metadata.xml b/modules/generators/messages/random_evil_transaction_history/secgen_metadata.xml
new file mode 100644
index 000000000..c175002d4
--- /dev/null
+++ b/modules/generators/messages/random_evil_transaction_history/secgen_metadata.xml
@@ -0,0 +1,18 @@
+
+
+
+ Random Evil Transaction History Generator
+ Z. Cliffe Schreuders
+ MIT
+ Generates an evil list of transaction entries.
+
+ evil_file_generator
+ local_calculation
+ linux
+ windows
+
+ generated_strings
+
+