diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog
diff --git a/ATL/test/creator-test.atl b/ATL/test/creator-test.atl
new file mode 100644
index 0000000..6209e7c
--- /dev/null
+++ b/ATL/test/creator-test.atl
@@ -0,0 +1,185 @@
+;; This code has been automatically generated by the
+;; Atlantis world creator.
+
+define-item "Rope (20m)"
+	cost 5
+
+define-item "Backpack"
+	cost 5
+
+define-item "Knife"
+	cost 10
+
+define-item "Short sword"
+	cost 40
+
+define-item "Long sword"
+	cost 80
+
+define-item "Dagger"
+	cost 20
+
+define-item "Spear"
+	cost 25
+
+define-item "Short bow"
+	cost 30
+
+define-item "Longbow"
+	cost 60
+
+define-item "Slingshot"
+	cost 15
+
+define-item "Throwing knife"
+	cost 15
+
+define-item "Quiver of arrows"
+	cost 20
+
+define-item "Leather armour"
+	cost 60
+
+define-item "Chain mail"
+	cost 120
+
+define-item "Plate armour"
+	cost 200
+
+define-item "Buckler"
+	cost 35
+
+define-item "Full shield"
+	cost 45
+
+define-item "Candles (3x)"
+	cost 5
+
+define-item "Matches"
+	cost 1
+
+define-item "Food rations (5x)"
+	cost 10
+
+define-item "Grappling hook"
+	cost 15
+
+define-item "Fishing net"
+	cost 25
+
+define-item "Fishing rod"
+	cost 15
+
+define-item "Tent (2 people)"
+	cost 30
+
+define-item "Cloak"
+	cost 15
+
+define-item "Hat"
+	cost 10
+
+define-item "Water bottle"
+	cost 5
+
+define-item "Compass"
+	cost 20
+
+define-item "Quill and ink"
+	cost 5
+
+define-item "Parchment"
+	cost 5
+
+define-item "Blanket"
+	cost 5
+
+define-item "Book of Legends"
+	cost 55
+
+define-item "Book of Lore"
+	cost 55
+
+define-item "Medicinal herbs"
+	cost 10
+
+define-item "Bandages (3x)"
+	cost 5
+
+define-item "Tea leaves"
+	cost 5
+
+define-item "Sleeping potion"
+	cost 15
+
+define-item "Leather pouch"
+	cost 2
+
+define-item "Face mask"
+	cost 10
+
+define-item "Dye"
+	cost 5
+
+define-item "Cloth"
+	cost 5
+
+define-item "Scissors"
+	cost 15
+
+define-item "Needle and thread"
+	cost 3
+
+define-item "Canvas"
+	cost 8
+
+define-item "String"
+	cost 2
+
+define-item "Hatchet"
+	cost 20
+
+define-item "Map"
+	cost 35
+
+define-item "Pony"
+	cost 100
+
+define-item "Horse"
+	cost 180
+
+define-item "Saddle and bridle"
+	cost 45
+
+define-item "Saddlebag"
+	cost 35
+
+define-item "Handmirror"
+	cost 20
+
+define-item "Magnifying glass"
+	cost 20
+
+define-item "Telescope"
+	cost 40
+
+define-item "Rope ladder"
+	cost 15
+
+define-item "Torches (3x)"
+	cost 10
+
+define-item "Staff"
+	cost 10
+
+define-item "Cooking pot"
+	cost 8
+
+define-item "Soap"
+	cost 2
+
+define-item "Towel"
+	cost 5
+
+define-item "Boots"
+	cost 10
\ No newline at end of file

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog
diff --git a/ATL/test/creator-test.atl b/ATL/test/creator-test.atl
new file mode 100644
index 0000000..6209e7c
--- /dev/null
+++ b/ATL/test/creator-test.atl
@@ -0,0 +1,185 @@
+;; This code has been automatically generated by the
+;; Atlantis world creator.
+
+define-item "Rope (20m)"
+	cost 5
+
+define-item "Backpack"
+	cost 5
+
+define-item "Knife"
+	cost 10
+
+define-item "Short sword"
+	cost 40
+
+define-item "Long sword"
+	cost 80
+
+define-item "Dagger"
+	cost 20
+
+define-item "Spear"
+	cost 25
+
+define-item "Short bow"
+	cost 30
+
+define-item "Longbow"
+	cost 60
+
+define-item "Slingshot"
+	cost 15
+
+define-item "Throwing knife"
+	cost 15
+
+define-item "Quiver of arrows"
+	cost 20
+
+define-item "Leather armour"
+	cost 60
+
+define-item "Chain mail"
+	cost 120
+
+define-item "Plate armour"
+	cost 200
+
+define-item "Buckler"
+	cost 35
+
+define-item "Full shield"
+	cost 45
+
+define-item "Candles (3x)"
+	cost 5
+
+define-item "Matches"
+	cost 1
+
+define-item "Food rations (5x)"
+	cost 10
+
+define-item "Grappling hook"
+	cost 15
+
+define-item "Fishing net"
+	cost 25
+
+define-item "Fishing rod"
+	cost 15
+
+define-item "Tent (2 people)"
+	cost 30
+
+define-item "Cloak"
+	cost 15
+
+define-item "Hat"
+	cost 10
+
+define-item "Water bottle"
+	cost 5
+
+define-item "Compass"
+	cost 20
+
+define-item "Quill and ink"
+	cost 5
+
+define-item "Parchment"
+	cost 5
+
+define-item "Blanket"
+	cost 5
+
+define-item "Book of Legends"
+	cost 55
+
+define-item "Book of Lore"
+	cost 55
+
+define-item "Medicinal herbs"
+	cost 10
+
+define-item "Bandages (3x)"
+	cost 5
+
+define-item "Tea leaves"
+	cost 5
+
+define-item "Sleeping potion"
+	cost 15
+
+define-item "Leather pouch"
+	cost 2
+
+define-item "Face mask"
+	cost 10
+
+define-item "Dye"
+	cost 5
+
+define-item "Cloth"
+	cost 5
+
+define-item "Scissors"
+	cost 15
+
+define-item "Needle and thread"
+	cost 3
+
+define-item "Canvas"
+	cost 8
+
+define-item "String"
+	cost 2
+
+define-item "Hatchet"
+	cost 20
+
+define-item "Map"
+	cost 35
+
+define-item "Pony"
+	cost 100
+
+define-item "Horse"
+	cost 180
+
+define-item "Saddle and bridle"
+	cost 45
+
+define-item "Saddlebag"
+	cost 35
+
+define-item "Handmirror"
+	cost 20
+
+define-item "Magnifying glass"
+	cost 20
+
+define-item "Telescope"
+	cost 40
+
+define-item "Rope ladder"
+	cost 15
+
+define-item "Torches (3x)"
+	cost 10
+
+define-item "Staff"
+	cost 10
+
+define-item "Cooking pot"
+	cost 8
+
+define-item "Soap"
+	cost 2
+
+define-item "Towel"
+	cost 5
+
+define-item "Boots"
+	cost 10
\ No newline at end of file
diff --git a/ATL/test/example.atl b/ATL/test/example.atl
new file mode 100644
index 0000000..3101edd
--- /dev/null
+++ b/ATL/test/example.atl
@@ -0,0 +1,72 @@
+# This is an example Atlantis file - I use it to explore what the language
+# should end up looking like.
+
+load races.atl
+load classes.atl
+
+
+define-quest Kill hellhound
+	objective kill hellhound
+	reward gold 300
+
+
+define-spell Ray of death
+	type kill
+	min-intelligence 12
+	success-rate 35
+
+
+define-npc Hades
+	say Oh, amazing, you actually got here! Who did you bribe?
+	sell 30 Ambrosia
+	quest Kill hellhound
+
+
+define-item Scroll of light
+	value 80
+	add-experience 20
+	add-spell Ray of death
+
+define-item Ambrosia
+	category Food
+	add-health 5	
+
+
+define-monster Hellhound
+	armor-class 8
+	strength 10
+	melee-weapon 2 claws
+	experience 50
+	spawn 2
+	aggression 60
+
+define-monster Fury
+	armor-class 5
+	strength 8
+	melee-weapon 10 fire whip
+	experience 74
+	spawn 0.8
+	aggression 30
+
+
+define-place Nowhere
+	description Welcome to Nowhere! You are in the void, the space between \
+the worlds. Around you is black. Black, except for one tiny pin-prick of light \
+to the north.
+	neighbour Elysium
+	
+define-place Elysium
+	description Congratulations! You have achieved Elysium!
+	neighbour Nowhere
+	neighbour Fields of punishment
+	npc Hades
+	item Scroll of light
+
+define-place Fields of punishment
+	description You really, really don't want to end up here...
+	neighbour Elysium
+	monster Hellhound
+	monster Fury
+
+
+start-place Elysium
\ No newline at end of file

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog
diff --git a/ATL/test/creator-test.atl b/ATL/test/creator-test.atl
new file mode 100644
index 0000000..6209e7c
--- /dev/null
+++ b/ATL/test/creator-test.atl
@@ -0,0 +1,185 @@
+;; This code has been automatically generated by the
+;; Atlantis world creator.
+
+define-item "Rope (20m)"
+	cost 5
+
+define-item "Backpack"
+	cost 5
+
+define-item "Knife"
+	cost 10
+
+define-item "Short sword"
+	cost 40
+
+define-item "Long sword"
+	cost 80
+
+define-item "Dagger"
+	cost 20
+
+define-item "Spear"
+	cost 25
+
+define-item "Short bow"
+	cost 30
+
+define-item "Longbow"
+	cost 60
+
+define-item "Slingshot"
+	cost 15
+
+define-item "Throwing knife"
+	cost 15
+
+define-item "Quiver of arrows"
+	cost 20
+
+define-item "Leather armour"
+	cost 60
+
+define-item "Chain mail"
+	cost 120
+
+define-item "Plate armour"
+	cost 200
+
+define-item "Buckler"
+	cost 35
+
+define-item "Full shield"
+	cost 45
+
+define-item "Candles (3x)"
+	cost 5
+
+define-item "Matches"
+	cost 1
+
+define-item "Food rations (5x)"
+	cost 10
+
+define-item "Grappling hook"
+	cost 15
+
+define-item "Fishing net"
+	cost 25
+
+define-item "Fishing rod"
+	cost 15
+
+define-item "Tent (2 people)"
+	cost 30
+
+define-item "Cloak"
+	cost 15
+
+define-item "Hat"
+	cost 10
+
+define-item "Water bottle"
+	cost 5
+
+define-item "Compass"
+	cost 20
+
+define-item "Quill and ink"
+	cost 5
+
+define-item "Parchment"
+	cost 5
+
+define-item "Blanket"
+	cost 5
+
+define-item "Book of Legends"
+	cost 55
+
+define-item "Book of Lore"
+	cost 55
+
+define-item "Medicinal herbs"
+	cost 10
+
+define-item "Bandages (3x)"
+	cost 5
+
+define-item "Tea leaves"
+	cost 5
+
+define-item "Sleeping potion"
+	cost 15
+
+define-item "Leather pouch"
+	cost 2
+
+define-item "Face mask"
+	cost 10
+
+define-item "Dye"
+	cost 5
+
+define-item "Cloth"
+	cost 5
+
+define-item "Scissors"
+	cost 15
+
+define-item "Needle and thread"
+	cost 3
+
+define-item "Canvas"
+	cost 8
+
+define-item "String"
+	cost 2
+
+define-item "Hatchet"
+	cost 20
+
+define-item "Map"
+	cost 35
+
+define-item "Pony"
+	cost 100
+
+define-item "Horse"
+	cost 180
+
+define-item "Saddle and bridle"
+	cost 45
+
+define-item "Saddlebag"
+	cost 35
+
+define-item "Handmirror"
+	cost 20
+
+define-item "Magnifying glass"
+	cost 20
+
+define-item "Telescope"
+	cost 40
+
+define-item "Rope ladder"
+	cost 15
+
+define-item "Torches (3x)"
+	cost 10
+
+define-item "Staff"
+	cost 10
+
+define-item "Cooking pot"
+	cost 8
+
+define-item "Soap"
+	cost 2
+
+define-item "Towel"
+	cost 5
+
+define-item "Boots"
+	cost 10
\ No newline at end of file
diff --git a/ATL/test/example.atl b/ATL/test/example.atl
new file mode 100644
index 0000000..3101edd
--- /dev/null
+++ b/ATL/test/example.atl
@@ -0,0 +1,72 @@
+# This is an example Atlantis file - I use it to explore what the language
+# should end up looking like.
+
+load races.atl
+load classes.atl
+
+
+define-quest Kill hellhound
+	objective kill hellhound
+	reward gold 300
+
+
+define-spell Ray of death
+	type kill
+	min-intelligence 12
+	success-rate 35
+
+
+define-npc Hades
+	say Oh, amazing, you actually got here! Who did you bribe?
+	sell 30 Ambrosia
+	quest Kill hellhound
+
+
+define-item Scroll of light
+	value 80
+	add-experience 20
+	add-spell Ray of death
+
+define-item Ambrosia
+	category Food
+	add-health 5	
+
+
+define-monster Hellhound
+	armor-class 8
+	strength 10
+	melee-weapon 2 claws
+	experience 50
+	spawn 2
+	aggression 60
+
+define-monster Fury
+	armor-class 5
+	strength 8
+	melee-weapon 10 fire whip
+	experience 74
+	spawn 0.8
+	aggression 30
+
+
+define-place Nowhere
+	description Welcome to Nowhere! You are in the void, the space between \
+the worlds. Around you is black. Black, except for one tiny pin-prick of light \
+to the north.
+	neighbour Elysium
+	
+define-place Elysium
+	description Congratulations! You have achieved Elysium!
+	neighbour Nowhere
+	neighbour Fields of punishment
+	npc Hades
+	item Scroll of light
+
+define-place Fields of punishment
+	description You really, really don't want to end up here...
+	neighbour Elysium
+	monster Hellhound
+	monster Fury
+
+
+start-place Elysium
\ No newline at end of file
diff --git a/ATL/test/game-objects.atl b/ATL/test/game-objects.atl
new file mode 100644
index 0000000..19a648a
--- /dev/null
+++ b/ATL/test/game-objects.atl
@@ -0,0 +1,51 @@
+; This module defines items, NPCs, monsters and weapons for my
+; Atlantis test world.
+; @author Daniel Vedder
+; @date 02/06/2015
+
+define-monster "Fury"
+	description "Hades' messengers, torturers, assassins. Beware!"
+	health 10
+	dexterity 20
+	strength 10
+	aggression 30
+	armour-class 3
+	weapon "fire-whip"
+
+define-weapon "fire-whip"
+	description "A 10-foot long whip, blazing with magical fire"
+	type "whip"
+	damage 2
+
+define-item "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	weapon "yes"
+
+define-item "Lightning bolt"
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	weapon "yes"
+
+define-weapon "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	type "sword"
+	damage 4
+
+define-weapon "Lightning bolt" ; primarily for debugging
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	type "magic"
+	damage 40
+
+define-npc "Hades"
+	description "Hades, Lord of the Dead!"
+	says "Beware, mortal - do not tempt me!"
+
+define-npc "Charon"
+	description "A robe-clad ghoul, dread ferryman of the Styx."
+	says "..."
+
+define-npc "Persephone" ;testing the shop system
+	description "Hades' beautiful wife, bringer of summer."
+	says "Welcome, my friend from the upper world!"
+	sells "Sleeping potion"
+	sells "Handmirror"
+	sells "Book of Lore"
\ No newline at end of file

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog
diff --git a/ATL/test/creator-test.atl b/ATL/test/creator-test.atl
new file mode 100644
index 0000000..6209e7c
--- /dev/null
+++ b/ATL/test/creator-test.atl
@@ -0,0 +1,185 @@
+;; This code has been automatically generated by the
+;; Atlantis world creator.
+
+define-item "Rope (20m)"
+	cost 5
+
+define-item "Backpack"
+	cost 5
+
+define-item "Knife"
+	cost 10
+
+define-item "Short sword"
+	cost 40
+
+define-item "Long sword"
+	cost 80
+
+define-item "Dagger"
+	cost 20
+
+define-item "Spear"
+	cost 25
+
+define-item "Short bow"
+	cost 30
+
+define-item "Longbow"
+	cost 60
+
+define-item "Slingshot"
+	cost 15
+
+define-item "Throwing knife"
+	cost 15
+
+define-item "Quiver of arrows"
+	cost 20
+
+define-item "Leather armour"
+	cost 60
+
+define-item "Chain mail"
+	cost 120
+
+define-item "Plate armour"
+	cost 200
+
+define-item "Buckler"
+	cost 35
+
+define-item "Full shield"
+	cost 45
+
+define-item "Candles (3x)"
+	cost 5
+
+define-item "Matches"
+	cost 1
+
+define-item "Food rations (5x)"
+	cost 10
+
+define-item "Grappling hook"
+	cost 15
+
+define-item "Fishing net"
+	cost 25
+
+define-item "Fishing rod"
+	cost 15
+
+define-item "Tent (2 people)"
+	cost 30
+
+define-item "Cloak"
+	cost 15
+
+define-item "Hat"
+	cost 10
+
+define-item "Water bottle"
+	cost 5
+
+define-item "Compass"
+	cost 20
+
+define-item "Quill and ink"
+	cost 5
+
+define-item "Parchment"
+	cost 5
+
+define-item "Blanket"
+	cost 5
+
+define-item "Book of Legends"
+	cost 55
+
+define-item "Book of Lore"
+	cost 55
+
+define-item "Medicinal herbs"
+	cost 10
+
+define-item "Bandages (3x)"
+	cost 5
+
+define-item "Tea leaves"
+	cost 5
+
+define-item "Sleeping potion"
+	cost 15
+
+define-item "Leather pouch"
+	cost 2
+
+define-item "Face mask"
+	cost 10
+
+define-item "Dye"
+	cost 5
+
+define-item "Cloth"
+	cost 5
+
+define-item "Scissors"
+	cost 15
+
+define-item "Needle and thread"
+	cost 3
+
+define-item "Canvas"
+	cost 8
+
+define-item "String"
+	cost 2
+
+define-item "Hatchet"
+	cost 20
+
+define-item "Map"
+	cost 35
+
+define-item "Pony"
+	cost 100
+
+define-item "Horse"
+	cost 180
+
+define-item "Saddle and bridle"
+	cost 45
+
+define-item "Saddlebag"
+	cost 35
+
+define-item "Handmirror"
+	cost 20
+
+define-item "Magnifying glass"
+	cost 20
+
+define-item "Telescope"
+	cost 40
+
+define-item "Rope ladder"
+	cost 15
+
+define-item "Torches (3x)"
+	cost 10
+
+define-item "Staff"
+	cost 10
+
+define-item "Cooking pot"
+	cost 8
+
+define-item "Soap"
+	cost 2
+
+define-item "Towel"
+	cost 5
+
+define-item "Boots"
+	cost 10
\ No newline at end of file
diff --git a/ATL/test/example.atl b/ATL/test/example.atl
new file mode 100644
index 0000000..3101edd
--- /dev/null
+++ b/ATL/test/example.atl
@@ -0,0 +1,72 @@
+# This is an example Atlantis file - I use it to explore what the language
+# should end up looking like.
+
+load races.atl
+load classes.atl
+
+
+define-quest Kill hellhound
+	objective kill hellhound
+	reward gold 300
+
+
+define-spell Ray of death
+	type kill
+	min-intelligence 12
+	success-rate 35
+
+
+define-npc Hades
+	say Oh, amazing, you actually got here! Who did you bribe?
+	sell 30 Ambrosia
+	quest Kill hellhound
+
+
+define-item Scroll of light
+	value 80
+	add-experience 20
+	add-spell Ray of death
+
+define-item Ambrosia
+	category Food
+	add-health 5	
+
+
+define-monster Hellhound
+	armor-class 8
+	strength 10
+	melee-weapon 2 claws
+	experience 50
+	spawn 2
+	aggression 60
+
+define-monster Fury
+	armor-class 5
+	strength 8
+	melee-weapon 10 fire whip
+	experience 74
+	spawn 0.8
+	aggression 30
+
+
+define-place Nowhere
+	description Welcome to Nowhere! You are in the void, the space between \
+the worlds. Around you is black. Black, except for one tiny pin-prick of light \
+to the north.
+	neighbour Elysium
+	
+define-place Elysium
+	description Congratulations! You have achieved Elysium!
+	neighbour Nowhere
+	neighbour Fields of punishment
+	npc Hades
+	item Scroll of light
+
+define-place Fields of punishment
+	description You really, really don't want to end up here...
+	neighbour Elysium
+	monster Hellhound
+	monster Fury
+
+
+start-place Elysium
\ No newline at end of file
diff --git a/ATL/test/game-objects.atl b/ATL/test/game-objects.atl
new file mode 100644
index 0000000..19a648a
--- /dev/null
+++ b/ATL/test/game-objects.atl
@@ -0,0 +1,51 @@
+; This module defines items, NPCs, monsters and weapons for my
+; Atlantis test world.
+; @author Daniel Vedder
+; @date 02/06/2015
+
+define-monster "Fury"
+	description "Hades' messengers, torturers, assassins. Beware!"
+	health 10
+	dexterity 20
+	strength 10
+	aggression 30
+	armour-class 3
+	weapon "fire-whip"
+
+define-weapon "fire-whip"
+	description "A 10-foot long whip, blazing with magical fire"
+	type "whip"
+	damage 2
+
+define-item "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	weapon "yes"
+
+define-item "Lightning bolt"
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	weapon "yes"
+
+define-weapon "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	type "sword"
+	damage 4
+
+define-weapon "Lightning bolt" ; primarily for debugging
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	type "magic"
+	damage 40
+
+define-npc "Hades"
+	description "Hades, Lord of the Dead!"
+	says "Beware, mortal - do not tempt me!"
+
+define-npc "Charon"
+	description "A robe-clad ghoul, dread ferryman of the Styx."
+	says "..."
+
+define-npc "Persephone" ;testing the shop system
+	description "Hades' beautiful wife, bringer of summer."
+	says "Welcome, my friend from the upper world!"
+	sells "Sleeping potion"
+	sells "Handmirror"
+	sells "Book of Lore"
\ No newline at end of file
diff --git a/ATL/test/lisp-test.atl b/ATL/test/lisp-test.atl
new file mode 100644
index 0000000..b68d944
--- /dev/null
+++ b/ATL/test/lisp-test.atl
@@ -0,0 +1,51 @@
+; This is a simple ATL file to test whatever I have implemented so far.
+; @author Daniel Vedder
+; @date 04/05/2015
+
+name-world "Underworld"
+
+define-player "Start"
+	money 200
+	place "Fields of Punishment"
+	max-health 50
+	health 50
+
+define-place "Nowhere"
+	description "Welcome to Nowhere! 
+You are in the void, the space between the worlds. Around you is black. 
+Black, except for one tiny pin-prick of light to the north."
+	neighbour "Styx"
+
+define-place "Elysium"
+	description "This is where you want to be when you are six feet under..."
+	neighbour "Styx"
+	neighbour "Fields of Punishment"
+	neighbour "Fields of Asphodel"
+	npc "Persephone"
+
+define-place "Fields of Punishment"
+	description "Precisely where you do NOT want to end up..."
+	neighbour "Styx"
+	neighbour "Elysium"
+	neighbour "Fields of Asphodel"
+	monster "Fury"
+
+define-place "Fields of Asphodel"
+	description "Nothing special. Really, nothing special at all. 
+Just a whole load of dead people..."
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	npc "Hades"
+
+define-place "Styx"
+	description "The great river that all must cross - but woe to those who do!"
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	neighbour "Nowhere"
+	item "Anaklusmos"
+	npc "Charon"
+
+load-file lisp-test.atl ;Testing whether recursive loading is prevented
+load-file races-classes.atl
+load-file game-objects.atl
+load-file creator-test.atl

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog
diff --git a/ATL/test/creator-test.atl b/ATL/test/creator-test.atl
new file mode 100644
index 0000000..6209e7c
--- /dev/null
+++ b/ATL/test/creator-test.atl
@@ -0,0 +1,185 @@
+;; This code has been automatically generated by the
+;; Atlantis world creator.
+
+define-item "Rope (20m)"
+	cost 5
+
+define-item "Backpack"
+	cost 5
+
+define-item "Knife"
+	cost 10
+
+define-item "Short sword"
+	cost 40
+
+define-item "Long sword"
+	cost 80
+
+define-item "Dagger"
+	cost 20
+
+define-item "Spear"
+	cost 25
+
+define-item "Short bow"
+	cost 30
+
+define-item "Longbow"
+	cost 60
+
+define-item "Slingshot"
+	cost 15
+
+define-item "Throwing knife"
+	cost 15
+
+define-item "Quiver of arrows"
+	cost 20
+
+define-item "Leather armour"
+	cost 60
+
+define-item "Chain mail"
+	cost 120
+
+define-item "Plate armour"
+	cost 200
+
+define-item "Buckler"
+	cost 35
+
+define-item "Full shield"
+	cost 45
+
+define-item "Candles (3x)"
+	cost 5
+
+define-item "Matches"
+	cost 1
+
+define-item "Food rations (5x)"
+	cost 10
+
+define-item "Grappling hook"
+	cost 15
+
+define-item "Fishing net"
+	cost 25
+
+define-item "Fishing rod"
+	cost 15
+
+define-item "Tent (2 people)"
+	cost 30
+
+define-item "Cloak"
+	cost 15
+
+define-item "Hat"
+	cost 10
+
+define-item "Water bottle"
+	cost 5
+
+define-item "Compass"
+	cost 20
+
+define-item "Quill and ink"
+	cost 5
+
+define-item "Parchment"
+	cost 5
+
+define-item "Blanket"
+	cost 5
+
+define-item "Book of Legends"
+	cost 55
+
+define-item "Book of Lore"
+	cost 55
+
+define-item "Medicinal herbs"
+	cost 10
+
+define-item "Bandages (3x)"
+	cost 5
+
+define-item "Tea leaves"
+	cost 5
+
+define-item "Sleeping potion"
+	cost 15
+
+define-item "Leather pouch"
+	cost 2
+
+define-item "Face mask"
+	cost 10
+
+define-item "Dye"
+	cost 5
+
+define-item "Cloth"
+	cost 5
+
+define-item "Scissors"
+	cost 15
+
+define-item "Needle and thread"
+	cost 3
+
+define-item "Canvas"
+	cost 8
+
+define-item "String"
+	cost 2
+
+define-item "Hatchet"
+	cost 20
+
+define-item "Map"
+	cost 35
+
+define-item "Pony"
+	cost 100
+
+define-item "Horse"
+	cost 180
+
+define-item "Saddle and bridle"
+	cost 45
+
+define-item "Saddlebag"
+	cost 35
+
+define-item "Handmirror"
+	cost 20
+
+define-item "Magnifying glass"
+	cost 20
+
+define-item "Telescope"
+	cost 40
+
+define-item "Rope ladder"
+	cost 15
+
+define-item "Torches (3x)"
+	cost 10
+
+define-item "Staff"
+	cost 10
+
+define-item "Cooking pot"
+	cost 8
+
+define-item "Soap"
+	cost 2
+
+define-item "Towel"
+	cost 5
+
+define-item "Boots"
+	cost 10
\ No newline at end of file
diff --git a/ATL/test/example.atl b/ATL/test/example.atl
new file mode 100644
index 0000000..3101edd
--- /dev/null
+++ b/ATL/test/example.atl
@@ -0,0 +1,72 @@
+# This is an example Atlantis file - I use it to explore what the language
+# should end up looking like.
+
+load races.atl
+load classes.atl
+
+
+define-quest Kill hellhound
+	objective kill hellhound
+	reward gold 300
+
+
+define-spell Ray of death
+	type kill
+	min-intelligence 12
+	success-rate 35
+
+
+define-npc Hades
+	say Oh, amazing, you actually got here! Who did you bribe?
+	sell 30 Ambrosia
+	quest Kill hellhound
+
+
+define-item Scroll of light
+	value 80
+	add-experience 20
+	add-spell Ray of death
+
+define-item Ambrosia
+	category Food
+	add-health 5	
+
+
+define-monster Hellhound
+	armor-class 8
+	strength 10
+	melee-weapon 2 claws
+	experience 50
+	spawn 2
+	aggression 60
+
+define-monster Fury
+	armor-class 5
+	strength 8
+	melee-weapon 10 fire whip
+	experience 74
+	spawn 0.8
+	aggression 30
+
+
+define-place Nowhere
+	description Welcome to Nowhere! You are in the void, the space between \
+the worlds. Around you is black. Black, except for one tiny pin-prick of light \
+to the north.
+	neighbour Elysium
+	
+define-place Elysium
+	description Congratulations! You have achieved Elysium!
+	neighbour Nowhere
+	neighbour Fields of punishment
+	npc Hades
+	item Scroll of light
+
+define-place Fields of punishment
+	description You really, really don't want to end up here...
+	neighbour Elysium
+	monster Hellhound
+	monster Fury
+
+
+start-place Elysium
\ No newline at end of file
diff --git a/ATL/test/game-objects.atl b/ATL/test/game-objects.atl
new file mode 100644
index 0000000..19a648a
--- /dev/null
+++ b/ATL/test/game-objects.atl
@@ -0,0 +1,51 @@
+; This module defines items, NPCs, monsters and weapons for my
+; Atlantis test world.
+; @author Daniel Vedder
+; @date 02/06/2015
+
+define-monster "Fury"
+	description "Hades' messengers, torturers, assassins. Beware!"
+	health 10
+	dexterity 20
+	strength 10
+	aggression 30
+	armour-class 3
+	weapon "fire-whip"
+
+define-weapon "fire-whip"
+	description "A 10-foot long whip, blazing with magical fire"
+	type "whip"
+	damage 2
+
+define-item "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	weapon "yes"
+
+define-item "Lightning bolt"
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	weapon "yes"
+
+define-weapon "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	type "sword"
+	damage 4
+
+define-weapon "Lightning bolt" ; primarily for debugging
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	type "magic"
+	damage 40
+
+define-npc "Hades"
+	description "Hades, Lord of the Dead!"
+	says "Beware, mortal - do not tempt me!"
+
+define-npc "Charon"
+	description "A robe-clad ghoul, dread ferryman of the Styx."
+	says "..."
+
+define-npc "Persephone" ;testing the shop system
+	description "Hades' beautiful wife, bringer of summer."
+	says "Welcome, my friend from the upper world!"
+	sells "Sleeping potion"
+	sells "Handmirror"
+	sells "Book of Lore"
\ No newline at end of file
diff --git a/ATL/test/lisp-test.atl b/ATL/test/lisp-test.atl
new file mode 100644
index 0000000..b68d944
--- /dev/null
+++ b/ATL/test/lisp-test.atl
@@ -0,0 +1,51 @@
+; This is a simple ATL file to test whatever I have implemented so far.
+; @author Daniel Vedder
+; @date 04/05/2015
+
+name-world "Underworld"
+
+define-player "Start"
+	money 200
+	place "Fields of Punishment"
+	max-health 50
+	health 50
+
+define-place "Nowhere"
+	description "Welcome to Nowhere! 
+You are in the void, the space between the worlds. Around you is black. 
+Black, except for one tiny pin-prick of light to the north."
+	neighbour "Styx"
+
+define-place "Elysium"
+	description "This is where you want to be when you are six feet under..."
+	neighbour "Styx"
+	neighbour "Fields of Punishment"
+	neighbour "Fields of Asphodel"
+	npc "Persephone"
+
+define-place "Fields of Punishment"
+	description "Precisely where you do NOT want to end up..."
+	neighbour "Styx"
+	neighbour "Elysium"
+	neighbour "Fields of Asphodel"
+	monster "Fury"
+
+define-place "Fields of Asphodel"
+	description "Nothing special. Really, nothing special at all. 
+Just a whole load of dead people..."
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	npc "Hades"
+
+define-place "Styx"
+	description "The great river that all must cross - but woe to those who do!"
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	neighbour "Nowhere"
+	item "Anaklusmos"
+	npc "Charon"
+
+load-file lisp-test.atl ;Testing whether recursive loading is prevented
+load-file races-classes.atl
+load-file game-objects.atl
+load-file creator-test.atl
diff --git a/ATL/test/races-classes.atl b/ATL/test/races-classes.atl
new file mode 100644
index 0000000..659310f
--- /dev/null
+++ b/ATL/test/races-classes.atl
@@ -0,0 +1,40 @@
+; A file to define all the races and character classes in my test world.
+; @author Daniel Vedder
+; @date 18/05/2015
+
+;;; RACES
+
+define-race "Elf"
+	description "The oldest and wisest race of Middle Earth"
+
+define-race "Dwarf"
+	description "Sons of the Earth, descendants of Durin"
+
+define-race "Hobbit"
+	description "Peace-loving and kind, true gentlemen"
+
+define-race "Human"
+	description "Boring, exciting, ever-changing, never-changing man..."
+
+
+;;; CLASSES
+
+define-class "Warrior"
+	description "Fighting as a passion!"
+	special-item "Sword"
+
+define-class "Wizard"
+	description "Ancient, powerful, keepers of the Knowledge..."
+	special-item "staff"
+
+define-class "Burglar"
+	description "Breaking and entering taken to the max!"
+	special-item "lockpick"
+	special-item "torch"
+
+define-class "Craftsman"
+	description "Maker of all things beautiful and useful"
+	special-item "hammer"
+
+load-file lisp-test.atl ;Again, a test for recursive loading
+load-file test-extension.lisp ;Testing whether Lisp extensions are loaded
\ No newline at end of file

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog
diff --git a/ATL/test/creator-test.atl b/ATL/test/creator-test.atl
new file mode 100644
index 0000000..6209e7c
--- /dev/null
+++ b/ATL/test/creator-test.atl
@@ -0,0 +1,185 @@
+;; This code has been automatically generated by the
+;; Atlantis world creator.
+
+define-item "Rope (20m)"
+	cost 5
+
+define-item "Backpack"
+	cost 5
+
+define-item "Knife"
+	cost 10
+
+define-item "Short sword"
+	cost 40
+
+define-item "Long sword"
+	cost 80
+
+define-item "Dagger"
+	cost 20
+
+define-item "Spear"
+	cost 25
+
+define-item "Short bow"
+	cost 30
+
+define-item "Longbow"
+	cost 60
+
+define-item "Slingshot"
+	cost 15
+
+define-item "Throwing knife"
+	cost 15
+
+define-item "Quiver of arrows"
+	cost 20
+
+define-item "Leather armour"
+	cost 60
+
+define-item "Chain mail"
+	cost 120
+
+define-item "Plate armour"
+	cost 200
+
+define-item "Buckler"
+	cost 35
+
+define-item "Full shield"
+	cost 45
+
+define-item "Candles (3x)"
+	cost 5
+
+define-item "Matches"
+	cost 1
+
+define-item "Food rations (5x)"
+	cost 10
+
+define-item "Grappling hook"
+	cost 15
+
+define-item "Fishing net"
+	cost 25
+
+define-item "Fishing rod"
+	cost 15
+
+define-item "Tent (2 people)"
+	cost 30
+
+define-item "Cloak"
+	cost 15
+
+define-item "Hat"
+	cost 10
+
+define-item "Water bottle"
+	cost 5
+
+define-item "Compass"
+	cost 20
+
+define-item "Quill and ink"
+	cost 5
+
+define-item "Parchment"
+	cost 5
+
+define-item "Blanket"
+	cost 5
+
+define-item "Book of Legends"
+	cost 55
+
+define-item "Book of Lore"
+	cost 55
+
+define-item "Medicinal herbs"
+	cost 10
+
+define-item "Bandages (3x)"
+	cost 5
+
+define-item "Tea leaves"
+	cost 5
+
+define-item "Sleeping potion"
+	cost 15
+
+define-item "Leather pouch"
+	cost 2
+
+define-item "Face mask"
+	cost 10
+
+define-item "Dye"
+	cost 5
+
+define-item "Cloth"
+	cost 5
+
+define-item "Scissors"
+	cost 15
+
+define-item "Needle and thread"
+	cost 3
+
+define-item "Canvas"
+	cost 8
+
+define-item "String"
+	cost 2
+
+define-item "Hatchet"
+	cost 20
+
+define-item "Map"
+	cost 35
+
+define-item "Pony"
+	cost 100
+
+define-item "Horse"
+	cost 180
+
+define-item "Saddle and bridle"
+	cost 45
+
+define-item "Saddlebag"
+	cost 35
+
+define-item "Handmirror"
+	cost 20
+
+define-item "Magnifying glass"
+	cost 20
+
+define-item "Telescope"
+	cost 40
+
+define-item "Rope ladder"
+	cost 15
+
+define-item "Torches (3x)"
+	cost 10
+
+define-item "Staff"
+	cost 10
+
+define-item "Cooking pot"
+	cost 8
+
+define-item "Soap"
+	cost 2
+
+define-item "Towel"
+	cost 5
+
+define-item "Boots"
+	cost 10
\ No newline at end of file
diff --git a/ATL/test/example.atl b/ATL/test/example.atl
new file mode 100644
index 0000000..3101edd
--- /dev/null
+++ b/ATL/test/example.atl
@@ -0,0 +1,72 @@
+# This is an example Atlantis file - I use it to explore what the language
+# should end up looking like.
+
+load races.atl
+load classes.atl
+
+
+define-quest Kill hellhound
+	objective kill hellhound
+	reward gold 300
+
+
+define-spell Ray of death
+	type kill
+	min-intelligence 12
+	success-rate 35
+
+
+define-npc Hades
+	say Oh, amazing, you actually got here! Who did you bribe?
+	sell 30 Ambrosia
+	quest Kill hellhound
+
+
+define-item Scroll of light
+	value 80
+	add-experience 20
+	add-spell Ray of death
+
+define-item Ambrosia
+	category Food
+	add-health 5	
+
+
+define-monster Hellhound
+	armor-class 8
+	strength 10
+	melee-weapon 2 claws
+	experience 50
+	spawn 2
+	aggression 60
+
+define-monster Fury
+	armor-class 5
+	strength 8
+	melee-weapon 10 fire whip
+	experience 74
+	spawn 0.8
+	aggression 30
+
+
+define-place Nowhere
+	description Welcome to Nowhere! You are in the void, the space between \
+the worlds. Around you is black. Black, except for one tiny pin-prick of light \
+to the north.
+	neighbour Elysium
+	
+define-place Elysium
+	description Congratulations! You have achieved Elysium!
+	neighbour Nowhere
+	neighbour Fields of punishment
+	npc Hades
+	item Scroll of light
+
+define-place Fields of punishment
+	description You really, really don't want to end up here...
+	neighbour Elysium
+	monster Hellhound
+	monster Fury
+
+
+start-place Elysium
\ No newline at end of file
diff --git a/ATL/test/game-objects.atl b/ATL/test/game-objects.atl
new file mode 100644
index 0000000..19a648a
--- /dev/null
+++ b/ATL/test/game-objects.atl
@@ -0,0 +1,51 @@
+; This module defines items, NPCs, monsters and weapons for my
+; Atlantis test world.
+; @author Daniel Vedder
+; @date 02/06/2015
+
+define-monster "Fury"
+	description "Hades' messengers, torturers, assassins. Beware!"
+	health 10
+	dexterity 20
+	strength 10
+	aggression 30
+	armour-class 3
+	weapon "fire-whip"
+
+define-weapon "fire-whip"
+	description "A 10-foot long whip, blazing with magical fire"
+	type "whip"
+	damage 2
+
+define-item "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	weapon "yes"
+
+define-item "Lightning bolt"
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	weapon "yes"
+
+define-weapon "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	type "sword"
+	damage 4
+
+define-weapon "Lightning bolt" ; primarily for debugging
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	type "magic"
+	damage 40
+
+define-npc "Hades"
+	description "Hades, Lord of the Dead!"
+	says "Beware, mortal - do not tempt me!"
+
+define-npc "Charon"
+	description "A robe-clad ghoul, dread ferryman of the Styx."
+	says "..."
+
+define-npc "Persephone" ;testing the shop system
+	description "Hades' beautiful wife, bringer of summer."
+	says "Welcome, my friend from the upper world!"
+	sells "Sleeping potion"
+	sells "Handmirror"
+	sells "Book of Lore"
\ No newline at end of file
diff --git a/ATL/test/lisp-test.atl b/ATL/test/lisp-test.atl
new file mode 100644
index 0000000..b68d944
--- /dev/null
+++ b/ATL/test/lisp-test.atl
@@ -0,0 +1,51 @@
+; This is a simple ATL file to test whatever I have implemented so far.
+; @author Daniel Vedder
+; @date 04/05/2015
+
+name-world "Underworld"
+
+define-player "Start"
+	money 200
+	place "Fields of Punishment"
+	max-health 50
+	health 50
+
+define-place "Nowhere"
+	description "Welcome to Nowhere! 
+You are in the void, the space between the worlds. Around you is black. 
+Black, except for one tiny pin-prick of light to the north."
+	neighbour "Styx"
+
+define-place "Elysium"
+	description "This is where you want to be when you are six feet under..."
+	neighbour "Styx"
+	neighbour "Fields of Punishment"
+	neighbour "Fields of Asphodel"
+	npc "Persephone"
+
+define-place "Fields of Punishment"
+	description "Precisely where you do NOT want to end up..."
+	neighbour "Styx"
+	neighbour "Elysium"
+	neighbour "Fields of Asphodel"
+	monster "Fury"
+
+define-place "Fields of Asphodel"
+	description "Nothing special. Really, nothing special at all. 
+Just a whole load of dead people..."
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	npc "Hades"
+
+define-place "Styx"
+	description "The great river that all must cross - but woe to those who do!"
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	neighbour "Nowhere"
+	item "Anaklusmos"
+	npc "Charon"
+
+load-file lisp-test.atl ;Testing whether recursive loading is prevented
+load-file races-classes.atl
+load-file game-objects.atl
+load-file creator-test.atl
diff --git a/ATL/test/races-classes.atl b/ATL/test/races-classes.atl
new file mode 100644
index 0000000..659310f
--- /dev/null
+++ b/ATL/test/races-classes.atl
@@ -0,0 +1,40 @@
+; A file to define all the races and character classes in my test world.
+; @author Daniel Vedder
+; @date 18/05/2015
+
+;;; RACES
+
+define-race "Elf"
+	description "The oldest and wisest race of Middle Earth"
+
+define-race "Dwarf"
+	description "Sons of the Earth, descendants of Durin"
+
+define-race "Hobbit"
+	description "Peace-loving and kind, true gentlemen"
+
+define-race "Human"
+	description "Boring, exciting, ever-changing, never-changing man..."
+
+
+;;; CLASSES
+
+define-class "Warrior"
+	description "Fighting as a passion!"
+	special-item "Sword"
+
+define-class "Wizard"
+	description "Ancient, powerful, keepers of the Knowledge..."
+	special-item "staff"
+
+define-class "Burglar"
+	description "Breaking and entering taken to the max!"
+	special-item "lockpick"
+	special-item "torch"
+
+define-class "Craftsman"
+	description "Maker of all things beautiful and useful"
+	special-item "hammer"
+
+load-file lisp-test.atl ;Again, a test for recursive loading
+load-file test-extension.lisp ;Testing whether Lisp extensions are loaded
\ No newline at end of file
diff --git a/ATL/test/test-extension.lisp b/ATL/test/test-extension.lisp
new file mode 100644
index 0000000..f01660a
--- /dev/null
+++ b/ATL/test/test-extension.lisp
@@ -0,0 +1,5 @@
+;; This file tests whether the interpreter loads Lisp files correctly.
+;; author: Daniel Vedder
+;; date: 21/05/2015
+
+(debugging "~&Loaded Lisp extension file.")

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog
diff --git a/ATL/test/creator-test.atl b/ATL/test/creator-test.atl
new file mode 100644
index 0000000..6209e7c
--- /dev/null
+++ b/ATL/test/creator-test.atl
@@ -0,0 +1,185 @@
+;; This code has been automatically generated by the
+;; Atlantis world creator.
+
+define-item "Rope (20m)"
+	cost 5
+
+define-item "Backpack"
+	cost 5
+
+define-item "Knife"
+	cost 10
+
+define-item "Short sword"
+	cost 40
+
+define-item "Long sword"
+	cost 80
+
+define-item "Dagger"
+	cost 20
+
+define-item "Spear"
+	cost 25
+
+define-item "Short bow"
+	cost 30
+
+define-item "Longbow"
+	cost 60
+
+define-item "Slingshot"
+	cost 15
+
+define-item "Throwing knife"
+	cost 15
+
+define-item "Quiver of arrows"
+	cost 20
+
+define-item "Leather armour"
+	cost 60
+
+define-item "Chain mail"
+	cost 120
+
+define-item "Plate armour"
+	cost 200
+
+define-item "Buckler"
+	cost 35
+
+define-item "Full shield"
+	cost 45
+
+define-item "Candles (3x)"
+	cost 5
+
+define-item "Matches"
+	cost 1
+
+define-item "Food rations (5x)"
+	cost 10
+
+define-item "Grappling hook"
+	cost 15
+
+define-item "Fishing net"
+	cost 25
+
+define-item "Fishing rod"
+	cost 15
+
+define-item "Tent (2 people)"
+	cost 30
+
+define-item "Cloak"
+	cost 15
+
+define-item "Hat"
+	cost 10
+
+define-item "Water bottle"
+	cost 5
+
+define-item "Compass"
+	cost 20
+
+define-item "Quill and ink"
+	cost 5
+
+define-item "Parchment"
+	cost 5
+
+define-item "Blanket"
+	cost 5
+
+define-item "Book of Legends"
+	cost 55
+
+define-item "Book of Lore"
+	cost 55
+
+define-item "Medicinal herbs"
+	cost 10
+
+define-item "Bandages (3x)"
+	cost 5
+
+define-item "Tea leaves"
+	cost 5
+
+define-item "Sleeping potion"
+	cost 15
+
+define-item "Leather pouch"
+	cost 2
+
+define-item "Face mask"
+	cost 10
+
+define-item "Dye"
+	cost 5
+
+define-item "Cloth"
+	cost 5
+
+define-item "Scissors"
+	cost 15
+
+define-item "Needle and thread"
+	cost 3
+
+define-item "Canvas"
+	cost 8
+
+define-item "String"
+	cost 2
+
+define-item "Hatchet"
+	cost 20
+
+define-item "Map"
+	cost 35
+
+define-item "Pony"
+	cost 100
+
+define-item "Horse"
+	cost 180
+
+define-item "Saddle and bridle"
+	cost 45
+
+define-item "Saddlebag"
+	cost 35
+
+define-item "Handmirror"
+	cost 20
+
+define-item "Magnifying glass"
+	cost 20
+
+define-item "Telescope"
+	cost 40
+
+define-item "Rope ladder"
+	cost 15
+
+define-item "Torches (3x)"
+	cost 10
+
+define-item "Staff"
+	cost 10
+
+define-item "Cooking pot"
+	cost 8
+
+define-item "Soap"
+	cost 2
+
+define-item "Towel"
+	cost 5
+
+define-item "Boots"
+	cost 10
\ No newline at end of file
diff --git a/ATL/test/example.atl b/ATL/test/example.atl
new file mode 100644
index 0000000..3101edd
--- /dev/null
+++ b/ATL/test/example.atl
@@ -0,0 +1,72 @@
+# This is an example Atlantis file - I use it to explore what the language
+# should end up looking like.
+
+load races.atl
+load classes.atl
+
+
+define-quest Kill hellhound
+	objective kill hellhound
+	reward gold 300
+
+
+define-spell Ray of death
+	type kill
+	min-intelligence 12
+	success-rate 35
+
+
+define-npc Hades
+	say Oh, amazing, you actually got here! Who did you bribe?
+	sell 30 Ambrosia
+	quest Kill hellhound
+
+
+define-item Scroll of light
+	value 80
+	add-experience 20
+	add-spell Ray of death
+
+define-item Ambrosia
+	category Food
+	add-health 5	
+
+
+define-monster Hellhound
+	armor-class 8
+	strength 10
+	melee-weapon 2 claws
+	experience 50
+	spawn 2
+	aggression 60
+
+define-monster Fury
+	armor-class 5
+	strength 8
+	melee-weapon 10 fire whip
+	experience 74
+	spawn 0.8
+	aggression 30
+
+
+define-place Nowhere
+	description Welcome to Nowhere! You are in the void, the space between \
+the worlds. Around you is black. Black, except for one tiny pin-prick of light \
+to the north.
+	neighbour Elysium
+	
+define-place Elysium
+	description Congratulations! You have achieved Elysium!
+	neighbour Nowhere
+	neighbour Fields of punishment
+	npc Hades
+	item Scroll of light
+
+define-place Fields of punishment
+	description You really, really don't want to end up here...
+	neighbour Elysium
+	monster Hellhound
+	monster Fury
+
+
+start-place Elysium
\ No newline at end of file
diff --git a/ATL/test/game-objects.atl b/ATL/test/game-objects.atl
new file mode 100644
index 0000000..19a648a
--- /dev/null
+++ b/ATL/test/game-objects.atl
@@ -0,0 +1,51 @@
+; This module defines items, NPCs, monsters and weapons for my
+; Atlantis test world.
+; @author Daniel Vedder
+; @date 02/06/2015
+
+define-monster "Fury"
+	description "Hades' messengers, torturers, assassins. Beware!"
+	health 10
+	dexterity 20
+	strength 10
+	aggression 30
+	armour-class 3
+	weapon "fire-whip"
+
+define-weapon "fire-whip"
+	description "A 10-foot long whip, blazing with magical fire"
+	type "whip"
+	damage 2
+
+define-item "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	weapon "yes"
+
+define-item "Lightning bolt"
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	weapon "yes"
+
+define-weapon "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	type "sword"
+	damage 4
+
+define-weapon "Lightning bolt" ; primarily for debugging
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	type "magic"
+	damage 40
+
+define-npc "Hades"
+	description "Hades, Lord of the Dead!"
+	says "Beware, mortal - do not tempt me!"
+
+define-npc "Charon"
+	description "A robe-clad ghoul, dread ferryman of the Styx."
+	says "..."
+
+define-npc "Persephone" ;testing the shop system
+	description "Hades' beautiful wife, bringer of summer."
+	says "Welcome, my friend from the upper world!"
+	sells "Sleeping potion"
+	sells "Handmirror"
+	sells "Book of Lore"
\ No newline at end of file
diff --git a/ATL/test/lisp-test.atl b/ATL/test/lisp-test.atl
new file mode 100644
index 0000000..b68d944
--- /dev/null
+++ b/ATL/test/lisp-test.atl
@@ -0,0 +1,51 @@
+; This is a simple ATL file to test whatever I have implemented so far.
+; @author Daniel Vedder
+; @date 04/05/2015
+
+name-world "Underworld"
+
+define-player "Start"
+	money 200
+	place "Fields of Punishment"
+	max-health 50
+	health 50
+
+define-place "Nowhere"
+	description "Welcome to Nowhere! 
+You are in the void, the space between the worlds. Around you is black. 
+Black, except for one tiny pin-prick of light to the north."
+	neighbour "Styx"
+
+define-place "Elysium"
+	description "This is where you want to be when you are six feet under..."
+	neighbour "Styx"
+	neighbour "Fields of Punishment"
+	neighbour "Fields of Asphodel"
+	npc "Persephone"
+
+define-place "Fields of Punishment"
+	description "Precisely where you do NOT want to end up..."
+	neighbour "Styx"
+	neighbour "Elysium"
+	neighbour "Fields of Asphodel"
+	monster "Fury"
+
+define-place "Fields of Asphodel"
+	description "Nothing special. Really, nothing special at all. 
+Just a whole load of dead people..."
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	npc "Hades"
+
+define-place "Styx"
+	description "The great river that all must cross - but woe to those who do!"
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	neighbour "Nowhere"
+	item "Anaklusmos"
+	npc "Charon"
+
+load-file lisp-test.atl ;Testing whether recursive loading is prevented
+load-file races-classes.atl
+load-file game-objects.atl
+load-file creator-test.atl
diff --git a/ATL/test/races-classes.atl b/ATL/test/races-classes.atl
new file mode 100644
index 0000000..659310f
--- /dev/null
+++ b/ATL/test/races-classes.atl
@@ -0,0 +1,40 @@
+; A file to define all the races and character classes in my test world.
+; @author Daniel Vedder
+; @date 18/05/2015
+
+;;; RACES
+
+define-race "Elf"
+	description "The oldest and wisest race of Middle Earth"
+
+define-race "Dwarf"
+	description "Sons of the Earth, descendants of Durin"
+
+define-race "Hobbit"
+	description "Peace-loving and kind, true gentlemen"
+
+define-race "Human"
+	description "Boring, exciting, ever-changing, never-changing man..."
+
+
+;;; CLASSES
+
+define-class "Warrior"
+	description "Fighting as a passion!"
+	special-item "Sword"
+
+define-class "Wizard"
+	description "Ancient, powerful, keepers of the Knowledge..."
+	special-item "staff"
+
+define-class "Burglar"
+	description "Breaking and entering taken to the max!"
+	special-item "lockpick"
+	special-item "torch"
+
+define-class "Craftsman"
+	description "Maker of all things beautiful and useful"
+	special-item "hammer"
+
+load-file lisp-test.atl ;Again, a test for recursive loading
+load-file test-extension.lisp ;Testing whether Lisp extensions are loaded
\ No newline at end of file
diff --git a/ATL/test/test-extension.lisp b/ATL/test/test-extension.lisp
new file mode 100644
index 0000000..f01660a
--- /dev/null
+++ b/ATL/test/test-extension.lisp
@@ -0,0 +1,5 @@
+;; This file tests whether the interpreter loads Lisp files correctly.
+;; author: Daniel Vedder
+;; date: 21/05/2015
+
+(debugging "~&Loaded Lisp extension file.")
diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp
index 47d2ccf..cb1958c 100644
--- a/lisp/atlantis.lisp
+++ b/lisp/atlantis.lisp
@@ -22,7 +22,7 @@
 (defun development ()
 	"A method to easily test whatever feature I am currently developing"
 	(setf *debugging* T)
-	(load-file "../ATL/lisp-test.atl")
+	(load-file "../ATL/test/lisp-test.atl")
 	(let ((player (make-player :name "Bilbo"
 					  :race "Hobbit" :class "Burglar"
 					  :place "Fields of Punishment"

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog
diff --git a/ATL/test/creator-test.atl b/ATL/test/creator-test.atl
new file mode 100644
index 0000000..6209e7c
--- /dev/null
+++ b/ATL/test/creator-test.atl
@@ -0,0 +1,185 @@
+;; This code has been automatically generated by the
+;; Atlantis world creator.
+
+define-item "Rope (20m)"
+	cost 5
+
+define-item "Backpack"
+	cost 5
+
+define-item "Knife"
+	cost 10
+
+define-item "Short sword"
+	cost 40
+
+define-item "Long sword"
+	cost 80
+
+define-item "Dagger"
+	cost 20
+
+define-item "Spear"
+	cost 25
+
+define-item "Short bow"
+	cost 30
+
+define-item "Longbow"
+	cost 60
+
+define-item "Slingshot"
+	cost 15
+
+define-item "Throwing knife"
+	cost 15
+
+define-item "Quiver of arrows"
+	cost 20
+
+define-item "Leather armour"
+	cost 60
+
+define-item "Chain mail"
+	cost 120
+
+define-item "Plate armour"
+	cost 200
+
+define-item "Buckler"
+	cost 35
+
+define-item "Full shield"
+	cost 45
+
+define-item "Candles (3x)"
+	cost 5
+
+define-item "Matches"
+	cost 1
+
+define-item "Food rations (5x)"
+	cost 10
+
+define-item "Grappling hook"
+	cost 15
+
+define-item "Fishing net"
+	cost 25
+
+define-item "Fishing rod"
+	cost 15
+
+define-item "Tent (2 people)"
+	cost 30
+
+define-item "Cloak"
+	cost 15
+
+define-item "Hat"
+	cost 10
+
+define-item "Water bottle"
+	cost 5
+
+define-item "Compass"
+	cost 20
+
+define-item "Quill and ink"
+	cost 5
+
+define-item "Parchment"
+	cost 5
+
+define-item "Blanket"
+	cost 5
+
+define-item "Book of Legends"
+	cost 55
+
+define-item "Book of Lore"
+	cost 55
+
+define-item "Medicinal herbs"
+	cost 10
+
+define-item "Bandages (3x)"
+	cost 5
+
+define-item "Tea leaves"
+	cost 5
+
+define-item "Sleeping potion"
+	cost 15
+
+define-item "Leather pouch"
+	cost 2
+
+define-item "Face mask"
+	cost 10
+
+define-item "Dye"
+	cost 5
+
+define-item "Cloth"
+	cost 5
+
+define-item "Scissors"
+	cost 15
+
+define-item "Needle and thread"
+	cost 3
+
+define-item "Canvas"
+	cost 8
+
+define-item "String"
+	cost 2
+
+define-item "Hatchet"
+	cost 20
+
+define-item "Map"
+	cost 35
+
+define-item "Pony"
+	cost 100
+
+define-item "Horse"
+	cost 180
+
+define-item "Saddle and bridle"
+	cost 45
+
+define-item "Saddlebag"
+	cost 35
+
+define-item "Handmirror"
+	cost 20
+
+define-item "Magnifying glass"
+	cost 20
+
+define-item "Telescope"
+	cost 40
+
+define-item "Rope ladder"
+	cost 15
+
+define-item "Torches (3x)"
+	cost 10
+
+define-item "Staff"
+	cost 10
+
+define-item "Cooking pot"
+	cost 8
+
+define-item "Soap"
+	cost 2
+
+define-item "Towel"
+	cost 5
+
+define-item "Boots"
+	cost 10
\ No newline at end of file
diff --git a/ATL/test/example.atl b/ATL/test/example.atl
new file mode 100644
index 0000000..3101edd
--- /dev/null
+++ b/ATL/test/example.atl
@@ -0,0 +1,72 @@
+# This is an example Atlantis file - I use it to explore what the language
+# should end up looking like.
+
+load races.atl
+load classes.atl
+
+
+define-quest Kill hellhound
+	objective kill hellhound
+	reward gold 300
+
+
+define-spell Ray of death
+	type kill
+	min-intelligence 12
+	success-rate 35
+
+
+define-npc Hades
+	say Oh, amazing, you actually got here! Who did you bribe?
+	sell 30 Ambrosia
+	quest Kill hellhound
+
+
+define-item Scroll of light
+	value 80
+	add-experience 20
+	add-spell Ray of death
+
+define-item Ambrosia
+	category Food
+	add-health 5	
+
+
+define-monster Hellhound
+	armor-class 8
+	strength 10
+	melee-weapon 2 claws
+	experience 50
+	spawn 2
+	aggression 60
+
+define-monster Fury
+	armor-class 5
+	strength 8
+	melee-weapon 10 fire whip
+	experience 74
+	spawn 0.8
+	aggression 30
+
+
+define-place Nowhere
+	description Welcome to Nowhere! You are in the void, the space between \
+the worlds. Around you is black. Black, except for one tiny pin-prick of light \
+to the north.
+	neighbour Elysium
+	
+define-place Elysium
+	description Congratulations! You have achieved Elysium!
+	neighbour Nowhere
+	neighbour Fields of punishment
+	npc Hades
+	item Scroll of light
+
+define-place Fields of punishment
+	description You really, really don't want to end up here...
+	neighbour Elysium
+	monster Hellhound
+	monster Fury
+
+
+start-place Elysium
\ No newline at end of file
diff --git a/ATL/test/game-objects.atl b/ATL/test/game-objects.atl
new file mode 100644
index 0000000..19a648a
--- /dev/null
+++ b/ATL/test/game-objects.atl
@@ -0,0 +1,51 @@
+; This module defines items, NPCs, monsters and weapons for my
+; Atlantis test world.
+; @author Daniel Vedder
+; @date 02/06/2015
+
+define-monster "Fury"
+	description "Hades' messengers, torturers, assassins. Beware!"
+	health 10
+	dexterity 20
+	strength 10
+	aggression 30
+	armour-class 3
+	weapon "fire-whip"
+
+define-weapon "fire-whip"
+	description "A 10-foot long whip, blazing with magical fire"
+	type "whip"
+	damage 2
+
+define-item "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	weapon "yes"
+
+define-item "Lightning bolt"
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	weapon "yes"
+
+define-weapon "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	type "sword"
+	damage 4
+
+define-weapon "Lightning bolt" ; primarily for debugging
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	type "magic"
+	damage 40
+
+define-npc "Hades"
+	description "Hades, Lord of the Dead!"
+	says "Beware, mortal - do not tempt me!"
+
+define-npc "Charon"
+	description "A robe-clad ghoul, dread ferryman of the Styx."
+	says "..."
+
+define-npc "Persephone" ;testing the shop system
+	description "Hades' beautiful wife, bringer of summer."
+	says "Welcome, my friend from the upper world!"
+	sells "Sleeping potion"
+	sells "Handmirror"
+	sells "Book of Lore"
\ No newline at end of file
diff --git a/ATL/test/lisp-test.atl b/ATL/test/lisp-test.atl
new file mode 100644
index 0000000..b68d944
--- /dev/null
+++ b/ATL/test/lisp-test.atl
@@ -0,0 +1,51 @@
+; This is a simple ATL file to test whatever I have implemented so far.
+; @author Daniel Vedder
+; @date 04/05/2015
+
+name-world "Underworld"
+
+define-player "Start"
+	money 200
+	place "Fields of Punishment"
+	max-health 50
+	health 50
+
+define-place "Nowhere"
+	description "Welcome to Nowhere! 
+You are in the void, the space between the worlds. Around you is black. 
+Black, except for one tiny pin-prick of light to the north."
+	neighbour "Styx"
+
+define-place "Elysium"
+	description "This is where you want to be when you are six feet under..."
+	neighbour "Styx"
+	neighbour "Fields of Punishment"
+	neighbour "Fields of Asphodel"
+	npc "Persephone"
+
+define-place "Fields of Punishment"
+	description "Precisely where you do NOT want to end up..."
+	neighbour "Styx"
+	neighbour "Elysium"
+	neighbour "Fields of Asphodel"
+	monster "Fury"
+
+define-place "Fields of Asphodel"
+	description "Nothing special. Really, nothing special at all. 
+Just a whole load of dead people..."
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	npc "Hades"
+
+define-place "Styx"
+	description "The great river that all must cross - but woe to those who do!"
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	neighbour "Nowhere"
+	item "Anaklusmos"
+	npc "Charon"
+
+load-file lisp-test.atl ;Testing whether recursive loading is prevented
+load-file races-classes.atl
+load-file game-objects.atl
+load-file creator-test.atl
diff --git a/ATL/test/races-classes.atl b/ATL/test/races-classes.atl
new file mode 100644
index 0000000..659310f
--- /dev/null
+++ b/ATL/test/races-classes.atl
@@ -0,0 +1,40 @@
+; A file to define all the races and character classes in my test world.
+; @author Daniel Vedder
+; @date 18/05/2015
+
+;;; RACES
+
+define-race "Elf"
+	description "The oldest and wisest race of Middle Earth"
+
+define-race "Dwarf"
+	description "Sons of the Earth, descendants of Durin"
+
+define-race "Hobbit"
+	description "Peace-loving and kind, true gentlemen"
+
+define-race "Human"
+	description "Boring, exciting, ever-changing, never-changing man..."
+
+
+;;; CLASSES
+
+define-class "Warrior"
+	description "Fighting as a passion!"
+	special-item "Sword"
+
+define-class "Wizard"
+	description "Ancient, powerful, keepers of the Knowledge..."
+	special-item "staff"
+
+define-class "Burglar"
+	description "Breaking and entering taken to the max!"
+	special-item "lockpick"
+	special-item "torch"
+
+define-class "Craftsman"
+	description "Maker of all things beautiful and useful"
+	special-item "hammer"
+
+load-file lisp-test.atl ;Again, a test for recursive loading
+load-file test-extension.lisp ;Testing whether Lisp extensions are loaded
\ No newline at end of file
diff --git a/ATL/test/test-extension.lisp b/ATL/test/test-extension.lisp
new file mode 100644
index 0000000..f01660a
--- /dev/null
+++ b/ATL/test/test-extension.lisp
@@ -0,0 +1,5 @@
+;; This file tests whether the interpreter loads Lisp files correctly.
+;; author: Daniel Vedder
+;; date: 21/05/2015
+
+(debugging "~&Loaded Lisp extension file.")
diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp
index 47d2ccf..cb1958c 100644
--- a/lisp/atlantis.lisp
+++ b/lisp/atlantis.lisp
@@ -22,7 +22,7 @@
 (defun development ()
 	"A method to easily test whatever feature I am currently developing"
 	(setf *debugging* T)
-	(load-file "../ATL/lisp-test.atl")
+	(load-file "../ATL/test/lisp-test.atl")
 	(let ((player (make-player :name "Bilbo"
 					  :race "Hobbit" :class "Burglar"
 					  :place "Fields of Punishment"
diff --git a/lisp/interpreter.lisp b/lisp/interpreter.lisp
index 7adfbb5..bdc3cac 100644
--- a/lisp/interpreter.lisp
+++ b/lisp/interpreter.lisp
@@ -69,7 +69,8 @@
 			;; concatenate string arguments spanning several lines
 			(while (= (count-instances #\" line) 1)
 				(incf line-nr)
-				(setf line (concatenate 'string line (nth line-nr source))))
+				(setf line (concatenate 'string line (to-string #\Newline)
+							   (trim-whitespace (nth line-nr source)))))
 			(cond ((zerop (length line))
 					  (when current-object (add-game-object current-object))
 					  (setf current-object NIL))

diff --git a/ATL/Lugwey/items.atl b/ATL/Lugwey/items.atl
new file mode 100644
index 0000000..63b407e
--- /dev/null
+++ b/ATL/Lugwey/items.atl
@@ -0,0 +1,26 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the item descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-item "Parchment"
+	description "Dried animal skins used as paper."
+	cost 5
+
+define-item "Quill"
+	description "A goose-feather, sharpened at one end to make a pen."
+	cost 5
+
+define-item "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	weapon "Yes"
+	cost 20
+
+define-weapon "Dagger"
+	description "A long, sharp knife, useful for self defence."
+	type "Knife"
+	damage 3
\ No newline at end of file
diff --git a/ATL/Lugwey/lugwey.atl b/ATL/Lugwey/lugwey.atl
new file mode 100644
index 0000000..12f6cd7
--- /dev/null
+++ b/ATL/Lugwey/lugwey.atl
@@ -0,0 +1,38 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This is the main world file.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+name-world "Lugwey"
+
+define-player "Start"
+	money 50
+	place "Gate"
+	max-health 50
+	health 50
+
+define-race "Human"
+	description "Errare humanum est"
+	intelligence-bonus 1
+
+define-class "Scholar"
+	description "Dubio ergo corgito, corgito ergo sum"
+	special-item "Paper"
+	special-item "Quill"
+
+;; DEVELOPMENT
+define-player "Leonardo"
+	race "Human"
+	class "Scholar"
+	item "Dagger"
+	weapon "Dagger"
+	money 60
+	place "Gate"
+
+load-file "places.atl"
+load-file "items.atl"
+load-file "npcs.atl"
\ No newline at end of file
diff --git a/ATL/Lugwey/npcs.atl b/ATL/Lugwey/npcs.atl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/ATL/Lugwey/npcs.atl
diff --git a/ATL/Lugwey/places.atl b/ATL/Lugwey/places.atl
new file mode 100644
index 0000000..c11f1a2
--- /dev/null
+++ b/ATL/Lugwey/places.atl
@@ -0,0 +1,36 @@
+; The Monastery of Lugwey is the first "real" world I am creating with ATL.
+; Its purpose (apart from being playable) is to help with the development of
+; Atlantis by showing potential deficits, bringing up new ideas, etc.
+;
+; This file holds all the place descriptions.
+;
+; @author Daniel Vedder
+; @date 09/07/2015
+
+define-place "Gate"
+	description "An old, partly moss-covered stone wall rises up in front of
+	you. Set in it, a wooden gate, reinforced with rusty iron strips.
+	One wing is open, permitting a view into the space beyond.
+	Behind you, the dusty track leads off into the forest.
+
+	A monk is sitting in the gate house, obviously bored."
+	neighbour "Forest track"
+	neighbour "Monastery grounds"
+	npc "Gatekeeper"
+
+define-place "Monastery grounds"
+	description "Paths criss-cross well-kept lawns. Here and there, roses bloom
+	in a flower bed. On one side stand the monastery buildings with
+	their calm, ancient dignity. On the other, the gardens, stables
+	and agricultural outhouses speak of a simple working life."
+	neighbour "Gate"
+	neighbour "Chapel"
+	neighbour "Dormitory"
+	neighbour "Gardens"
+	neighbour "Stable"
+
+define-place "Forest track"
+	description "A rutted track, scarred by the wheels of many carts, leads
+	through the forest from the monastery to the village."
+	neighbour "Gate"
+	item "Signet ring"
\ No newline at end of file
diff --git a/ATL/conversion/ATL-item-conversion.csv b/ATL/conversion/ATL-item-conversion.csv
new file mode 100644
index 0000000..9a50392
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.csv
@@ -0,0 +1,63 @@
+Item,
+Name,cost
+Rope (20m),5
+Backpack,5
+Knife,10
+Short sword,40
+Long sword,80
+Dagger,20
+Spear,25
+Short bow,30
+Longbow,60
+Slingshot,15
+Throwing knife,15
+Quiver of arrows,20
+Leather armour,60
+Chain mail,120
+Plate armour,200
+Buckler,35
+Full shield,45
+Candles (3x),5
+Matches,1
+Food rations (5x),10
+Grappling hook,15
+Fishing net,25
+Fishing rod,15
+Tent (2 people),30
+Cloak,15
+Hat,10
+Water bottle,5
+Compass,20
+Quill and ink,5
+Parchment,5
+Blanket,5
+Book of Legends,55
+Book of Lore,55
+Medicinal herbs,10
+Bandages (3x),5
+Tea leaves,5
+Sleeping potion,15
+Leather pouch,2
+Face mask,10
+Dye,5
+Cloth,5
+Scissors,15
+Needle and thread,3
+Canvas,8
+String,2
+Hatchet,20
+Map,35
+Pony,100
+Horse,180
+Saddle and bridle,45
+Saddlebag,35
+Handmirror,20
+Magnifying glass,20
+Telescope,40
+Rope ladder,15
+Torches (3x),10
+Staff,10
+Cooking pot,8
+Soap,2
+Towel,5
+Boots,10
diff --git a/ATL/conversion/ATL-item-conversion.ods b/ATL/conversion/ATL-item-conversion.ods
new file mode 100644
index 0000000..a5442c2
--- /dev/null
+++ b/ATL/conversion/ATL-item-conversion.ods
Binary files differ
diff --git a/ATL/conversion/spreadsheet-export b/ATL/conversion/spreadsheet-export
new file mode 100644
index 0000000..9228e79
--- /dev/null
+++ b/ATL/conversion/spreadsheet-export
@@ -0,0 +1,62 @@
+Rope (20m)	5
+Backpack	5
+Knife	10
+Short sword	40
+Long sword	80
+Dagger	20
+Spear	25
+Short bow	30
+Longbow	60
+Slingshot	15
+Throwing knife	15
+Quiver of arrows	20
+Leather armour	60
+Chain mail	120
+Plate armour	200
+Buckler	35
+Full shield	45
+Candles (3x)	5
+Matches	1
+Food rations (5x)	10
+Grappling hook	15
+Fishing net	25
+Fishing rod	15
+Tent (2 people)	30
+Cloak	15
+Hat	10
+Water bottle	5
+Compass	20
+Quill and ink	5
+Parchment	5
+Blanket	5
+Book of Legends	55
+Book of Lore	55
+Medicinal herbs	10
+Bandages (3x)	5
+Tea leaves	5
+Sleeping potion	15
+Leather pouch	2
+Face mask	10
+Dye	5
+Cloth	5
+Scissors	15
+Needle and thread	3
+Canvas	8
+String	2
+Hatchet	20
+Map	35
+Pony	100
+Horse	180
+Saddle and bridle	45
+Saddlebag	35
+Handmirror	20
+Magnifying glass	20
+Telescope	40
+Rope ladder	15
+Torches (3x)	10
+Staff	10
+Cooking pot	8
+Soap	2
+Towel	5
+Boots	10
+
diff --git a/ATL/name_generator.py b/ATL/name_generator.py
new file mode 100644
index 0000000..d34e37d
--- /dev/null
+++ b/ATL/name_generator.py
@@ -0,0 +1,98 @@
+'''
+This script is meant to help me write "Crown of the Khadalun". It randomly
+combines letters and syllables to suggest new fantasy names.
+@author: Daniel Vedder
+@version 1.1
+'''
+
+import random
+import sys
+
+global vowels, consonants
+vowels = ("a", "e", "i", "o", "u")
+consonants = ("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z")
+
+'''
+Create a random syllable between 1 and 3 letters long
+'''
+def create_syllable():
+    global vowels, consonants
+    length = random.randint(1, 3)
+    syllable = ""
+    if length == 1:
+        syllable = vowels[random.randint(0, 4)]
+    else:
+        for l in range(1, length+1, 1):
+            next_letter = ""
+            if l == 1 or l == 3:
+                next_letter = consonants[random.randint(0, 20)]
+            elif l == 2:
+                next_letter = vowels[random.randint(0, 4)]
+            syllable = syllable+next_letter
+    return syllable
+
+'''
+Join several syllables together to form a word
+@param length The number of syllables (0 for random up to 5)
+'''
+def create_word(length=0):
+    if length == 0:
+        length = random.randint(1, 5)
+    word = ""
+    for i in range(0, length+1, 1):
+        next_syllable = create_syllable()
+        word = word+next_syllable
+    if word[-1] in vowels and random.randint(0, 1) == 1:
+        word = word+consonants[random.randint(0, 20)]
+    word = word[0].upper()+word[1:]
+    return word
+
+'''
+Interactively suggest a list of names to the user, saving those
+he/she chooses to file.
+'''
+def interactive():
+    welcome_text = """
+Welcome! This script will suggest a series of random names to 
+you. After each name, type 'y' if you want to keep it, otherwise
+type 'n' or just hit ENTER. To stop, type 'quit' or 'done'. 
+'cancel' stops the session without saving anything."""
+    print(welcome_text)
+    names = ""
+    next_name = create_word()
+    keep = ""
+    cancel = ("quit", "done", "exit", "cancel")
+    while keep not in cancel:
+        keep = input(">> "+next_name+": ")
+        if keep == "y" or keep == "Y":
+            names = names+next_name+"\n"
+        next_name = create_word()
+    if keep == "cancel":
+        print("Script cancelled.")
+        sys.exit()
+    try:
+        name_file = open("suggested_names.txt", "a")
+        name_file.write(names)
+        name_file.close()
+    except:
+        print("Error saving name list to suggested_names.txt!")
+    print("Goodbye!")
+
+'''
+Print a list of random names
+@param n Number of words, default: 10
+'''
+def batch(n=10):
+    wordlist = create_word()
+    for n in range(0, n-1, 1):
+        wordlist = wordlist+", "+create_word()
+    print(wordlist)
+
+if __name__ == "__main__":
+    if "-i" in sys.argv or "--interactive" in sys.argv:
+        interactive()
+    elif "-n" in sys.argv:
+        n = sys.argv[sys.argv.index("-n")+1]
+        batch(int(n))
+    else:
+        batch()
diff --git a/ATL/suggested_names.txt b/ATL/suggested_names.txt
new file mode 100644
index 0000000..4d29d4b
--- /dev/null
+++ b/ATL/suggested_names.txt
@@ -0,0 +1,18 @@
+Icaduwlin
+Feloh
+Iacud
+Himki
+Utum
+Ceuc
+Vebo
+Ioalim
+Ohuk
+Odi
+Onad
+Ohi
+Yucac
+Alonda
+Busu
+Upatranuraf
+Ovuk
+Fivrihog
diff --git a/ATL/test/creator-test.atl b/ATL/test/creator-test.atl
new file mode 100644
index 0000000..6209e7c
--- /dev/null
+++ b/ATL/test/creator-test.atl
@@ -0,0 +1,185 @@
+;; This code has been automatically generated by the
+;; Atlantis world creator.
+
+define-item "Rope (20m)"
+	cost 5
+
+define-item "Backpack"
+	cost 5
+
+define-item "Knife"
+	cost 10
+
+define-item "Short sword"
+	cost 40
+
+define-item "Long sword"
+	cost 80
+
+define-item "Dagger"
+	cost 20
+
+define-item "Spear"
+	cost 25
+
+define-item "Short bow"
+	cost 30
+
+define-item "Longbow"
+	cost 60
+
+define-item "Slingshot"
+	cost 15
+
+define-item "Throwing knife"
+	cost 15
+
+define-item "Quiver of arrows"
+	cost 20
+
+define-item "Leather armour"
+	cost 60
+
+define-item "Chain mail"
+	cost 120
+
+define-item "Plate armour"
+	cost 200
+
+define-item "Buckler"
+	cost 35
+
+define-item "Full shield"
+	cost 45
+
+define-item "Candles (3x)"
+	cost 5
+
+define-item "Matches"
+	cost 1
+
+define-item "Food rations (5x)"
+	cost 10
+
+define-item "Grappling hook"
+	cost 15
+
+define-item "Fishing net"
+	cost 25
+
+define-item "Fishing rod"
+	cost 15
+
+define-item "Tent (2 people)"
+	cost 30
+
+define-item "Cloak"
+	cost 15
+
+define-item "Hat"
+	cost 10
+
+define-item "Water bottle"
+	cost 5
+
+define-item "Compass"
+	cost 20
+
+define-item "Quill and ink"
+	cost 5
+
+define-item "Parchment"
+	cost 5
+
+define-item "Blanket"
+	cost 5
+
+define-item "Book of Legends"
+	cost 55
+
+define-item "Book of Lore"
+	cost 55
+
+define-item "Medicinal herbs"
+	cost 10
+
+define-item "Bandages (3x)"
+	cost 5
+
+define-item "Tea leaves"
+	cost 5
+
+define-item "Sleeping potion"
+	cost 15
+
+define-item "Leather pouch"
+	cost 2
+
+define-item "Face mask"
+	cost 10
+
+define-item "Dye"
+	cost 5
+
+define-item "Cloth"
+	cost 5
+
+define-item "Scissors"
+	cost 15
+
+define-item "Needle and thread"
+	cost 3
+
+define-item "Canvas"
+	cost 8
+
+define-item "String"
+	cost 2
+
+define-item "Hatchet"
+	cost 20
+
+define-item "Map"
+	cost 35
+
+define-item "Pony"
+	cost 100
+
+define-item "Horse"
+	cost 180
+
+define-item "Saddle and bridle"
+	cost 45
+
+define-item "Saddlebag"
+	cost 35
+
+define-item "Handmirror"
+	cost 20
+
+define-item "Magnifying glass"
+	cost 20
+
+define-item "Telescope"
+	cost 40
+
+define-item "Rope ladder"
+	cost 15
+
+define-item "Torches (3x)"
+	cost 10
+
+define-item "Staff"
+	cost 10
+
+define-item "Cooking pot"
+	cost 8
+
+define-item "Soap"
+	cost 2
+
+define-item "Towel"
+	cost 5
+
+define-item "Boots"
+	cost 10
\ No newline at end of file
diff --git a/ATL/test/example.atl b/ATL/test/example.atl
new file mode 100644
index 0000000..3101edd
--- /dev/null
+++ b/ATL/test/example.atl
@@ -0,0 +1,72 @@
+# This is an example Atlantis file - I use it to explore what the language
+# should end up looking like.
+
+load races.atl
+load classes.atl
+
+
+define-quest Kill hellhound
+	objective kill hellhound
+	reward gold 300
+
+
+define-spell Ray of death
+	type kill
+	min-intelligence 12
+	success-rate 35
+
+
+define-npc Hades
+	say Oh, amazing, you actually got here! Who did you bribe?
+	sell 30 Ambrosia
+	quest Kill hellhound
+
+
+define-item Scroll of light
+	value 80
+	add-experience 20
+	add-spell Ray of death
+
+define-item Ambrosia
+	category Food
+	add-health 5	
+
+
+define-monster Hellhound
+	armor-class 8
+	strength 10
+	melee-weapon 2 claws
+	experience 50
+	spawn 2
+	aggression 60
+
+define-monster Fury
+	armor-class 5
+	strength 8
+	melee-weapon 10 fire whip
+	experience 74
+	spawn 0.8
+	aggression 30
+
+
+define-place Nowhere
+	description Welcome to Nowhere! You are in the void, the space between \
+the worlds. Around you is black. Black, except for one tiny pin-prick of light \
+to the north.
+	neighbour Elysium
+	
+define-place Elysium
+	description Congratulations! You have achieved Elysium!
+	neighbour Nowhere
+	neighbour Fields of punishment
+	npc Hades
+	item Scroll of light
+
+define-place Fields of punishment
+	description You really, really don't want to end up here...
+	neighbour Elysium
+	monster Hellhound
+	monster Fury
+
+
+start-place Elysium
\ No newline at end of file
diff --git a/ATL/test/game-objects.atl b/ATL/test/game-objects.atl
new file mode 100644
index 0000000..19a648a
--- /dev/null
+++ b/ATL/test/game-objects.atl
@@ -0,0 +1,51 @@
+; This module defines items, NPCs, monsters and weapons for my
+; Atlantis test world.
+; @author Daniel Vedder
+; @date 02/06/2015
+
+define-monster "Fury"
+	description "Hades' messengers, torturers, assassins. Beware!"
+	health 10
+	dexterity 20
+	strength 10
+	aggression 30
+	armour-class 3
+	weapon "fire-whip"
+
+define-weapon "fire-whip"
+	description "A 10-foot long whip, blazing with magical fire"
+	type "whip"
+	damage 2
+
+define-item "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	weapon "yes"
+
+define-item "Lightning bolt"
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	weapon "yes"
+
+define-weapon "Anaklusmos"
+	description "Riptide, a sword for heroes!"
+	type "sword"
+	damage 4
+
+define-weapon "Lightning bolt" ; primarily for debugging
+	description "Zeus lightning bolt - the most powerful weapon of the universe!"
+	type "magic"
+	damage 40
+
+define-npc "Hades"
+	description "Hades, Lord of the Dead!"
+	says "Beware, mortal - do not tempt me!"
+
+define-npc "Charon"
+	description "A robe-clad ghoul, dread ferryman of the Styx."
+	says "..."
+
+define-npc "Persephone" ;testing the shop system
+	description "Hades' beautiful wife, bringer of summer."
+	says "Welcome, my friend from the upper world!"
+	sells "Sleeping potion"
+	sells "Handmirror"
+	sells "Book of Lore"
\ No newline at end of file
diff --git a/ATL/test/lisp-test.atl b/ATL/test/lisp-test.atl
new file mode 100644
index 0000000..b68d944
--- /dev/null
+++ b/ATL/test/lisp-test.atl
@@ -0,0 +1,51 @@
+; This is a simple ATL file to test whatever I have implemented so far.
+; @author Daniel Vedder
+; @date 04/05/2015
+
+name-world "Underworld"
+
+define-player "Start"
+	money 200
+	place "Fields of Punishment"
+	max-health 50
+	health 50
+
+define-place "Nowhere"
+	description "Welcome to Nowhere! 
+You are in the void, the space between the worlds. Around you is black. 
+Black, except for one tiny pin-prick of light to the north."
+	neighbour "Styx"
+
+define-place "Elysium"
+	description "This is where you want to be when you are six feet under..."
+	neighbour "Styx"
+	neighbour "Fields of Punishment"
+	neighbour "Fields of Asphodel"
+	npc "Persephone"
+
+define-place "Fields of Punishment"
+	description "Precisely where you do NOT want to end up..."
+	neighbour "Styx"
+	neighbour "Elysium"
+	neighbour "Fields of Asphodel"
+	monster "Fury"
+
+define-place "Fields of Asphodel"
+	description "Nothing special. Really, nothing special at all. 
+Just a whole load of dead people..."
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	npc "Hades"
+
+define-place "Styx"
+	description "The great river that all must cross - but woe to those who do!"
+	neighbour "Fields of Punishment"
+	neighbour "Elysium"
+	neighbour "Nowhere"
+	item "Anaklusmos"
+	npc "Charon"
+
+load-file lisp-test.atl ;Testing whether recursive loading is prevented
+load-file races-classes.atl
+load-file game-objects.atl
+load-file creator-test.atl
diff --git a/ATL/test/races-classes.atl b/ATL/test/races-classes.atl
new file mode 100644
index 0000000..659310f
--- /dev/null
+++ b/ATL/test/races-classes.atl
@@ -0,0 +1,40 @@
+; A file to define all the races and character classes in my test world.
+; @author Daniel Vedder
+; @date 18/05/2015
+
+;;; RACES
+
+define-race "Elf"
+	description "The oldest and wisest race of Middle Earth"
+
+define-race "Dwarf"
+	description "Sons of the Earth, descendants of Durin"
+
+define-race "Hobbit"
+	description "Peace-loving and kind, true gentlemen"
+
+define-race "Human"
+	description "Boring, exciting, ever-changing, never-changing man..."
+
+
+;;; CLASSES
+
+define-class "Warrior"
+	description "Fighting as a passion!"
+	special-item "Sword"
+
+define-class "Wizard"
+	description "Ancient, powerful, keepers of the Knowledge..."
+	special-item "staff"
+
+define-class "Burglar"
+	description "Breaking and entering taken to the max!"
+	special-item "lockpick"
+	special-item "torch"
+
+define-class "Craftsman"
+	description "Maker of all things beautiful and useful"
+	special-item "hammer"
+
+load-file lisp-test.atl ;Again, a test for recursive loading
+load-file test-extension.lisp ;Testing whether Lisp extensions are loaded
\ No newline at end of file
diff --git a/ATL/test/test-extension.lisp b/ATL/test/test-extension.lisp
new file mode 100644
index 0000000..f01660a
--- /dev/null
+++ b/ATL/test/test-extension.lisp
@@ -0,0 +1,5 @@
+;; This file tests whether the interpreter loads Lisp files correctly.
+;; author: Daniel Vedder
+;; date: 21/05/2015
+
+(debugging "~&Loaded Lisp extension file.")
diff --git a/lisp/atlantis.lisp b/lisp/atlantis.lisp
index 47d2ccf..cb1958c 100644
--- a/lisp/atlantis.lisp
+++ b/lisp/atlantis.lisp
@@ -22,7 +22,7 @@
 (defun development ()
 	"A method to easily test whatever feature I am currently developing"
 	(setf *debugging* T)
-	(load-file "../ATL/lisp-test.atl")
+	(load-file "../ATL/test/lisp-test.atl")
 	(let ((player (make-player :name "Bilbo"
 					  :race "Hobbit" :class "Burglar"
 					  :place "Fields of Punishment"
diff --git a/lisp/interpreter.lisp b/lisp/interpreter.lisp
index 7adfbb5..bdc3cac 100644
--- a/lisp/interpreter.lisp
+++ b/lisp/interpreter.lisp
@@ -69,7 +69,8 @@
 			;; concatenate string arguments spanning several lines
 			(while (= (count-instances #\" line) 1)
 				(incf line-nr)
-				(setf line (concatenate 'string line (nth line-nr source))))
+				(setf line (concatenate 'string line (to-string #\Newline)
+							   (trim-whitespace (nth line-nr source)))))
 			(cond ((zerop (length line))
 					  (when current-object (add-game-object current-object))
 					  (setf current-object NIL))
diff --git a/lugwey.world b/lugwey.world
new file mode 100644
index 0000000..8081fc7
--- /dev/null
+++ b/lugwey.world
@@ -0,0 +1,38 @@
+(0 1 4)
+#S(WORLD :NAME "Lugwey"
+   :PLAYERS
+   (#S(PLAYER :NAME "Start" :RACE "" :CLASS "" :STRENGTH 0 :DEXTERITY 0 :CONSTITUTION 0 :INTELLIGENCE 0 :MONEY 50 :ITEM NIL :WEAPON "" :ARMOUR-CLASS 0 :PLACE "Gate"
+       :EXPERIENCE 0 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50 :GAME-ADMIN NIL)
+    #S(PLAYER :NAME "Leonardo" :RACE "Human" :CLASS "Scholar" :STRENGTH 0 :DEXTERITY 0 :CONSTITUTION 0 :INTELLIGENCE 0 :MONEY 60 :ITEM ("Dagger") :WEAPON "Dagger"
+       :ARMOUR-CLASS 0 :PLACE "Gate" :EXPERIENCE 0 :LEVEL 0 :MAX-HEALTH 50 :HEALTH 50 :GAME-ADMIN NIL))
+   :CHARACTER-CLASSS (#S(CHARACTER-CLASS :NAME "Scholar" :DESCRIPTION "Dubio ergo corgito, corgito ergo sum" :SPECIAL-ITEM ("Paper" "Quill") :SPECIAL-ABILITY NIL))
+   :RACES
+   (#S(RACE :NAME "Human" :DESCRIPTION "Errare humanum est" :STRENGTH-BONUS 0 :DEXTERITY-BONUS 0 :CONSTITUTION-BONUS 0 :INTELLIGENCE-BONUS 1 :SPECIAL-ABILITY NIL))
+   :PLACES
+   (#S(PLACE :NAME "Gate"
+       :DESCRIPTION
+       "An old, partly moss-covered stone wall rises up in front of
+you. Set in it, a wooden gate, reinforced with rusty iron strips.
+One wing is open, permitting a view into the space beyond.
+Behind you, the dusty track leads off into the forest.
+
+A monk is sitting in the gate house, obviously bored."
+       :NEIGHBOUR ("Forest track" "Monastery grounds") :PLAYER NIL :ITEM NIL :MONSTER NIL :NPC ("Gatekeeper"))
+    #S(PLACE :NAME "Monastery grounds"
+       :DESCRIPTION
+       "Paths criss-cross well-kept lawns. Here and there, roses bloom
+in a flower bed. On one side stand the monastery buildings with
+their calm, ancient dignity. On the other, the gardens, stables
+and agricultural outhouses speak of a simple working life."
+       :NEIGHBOUR ("Gate" "Chapel" "Dormitory" "Gardens" "Stable") :PLAYER NIL :ITEM NIL :MONSTER NIL :NPC NIL)
+    #S(PLACE :NAME "Forest track"
+       :DESCRIPTION
+       "A rutted track, scarred by the wheels of many carts, leads
+through the forest from the monastery to the village."
+       :NEIGHBOUR ("Gate") :PLAYER NIL :ITEM ("Signet ring") :MONSTER NIL :NPC NIL))
+   :MONSTERS NIL :NPCS NIL
+   :ITEMS
+   (#S(ITEM :NAME "Parchment" :DESCRIPTION "Dried animal skins used as paper." :COST 5 :WEAPON "no" :FUNCTION NIL)
+    #S(ITEM :NAME "Quill" :DESCRIPTION "A goose-feather, sharpened at one end to make a pen." :COST 5 :WEAPON "no" :FUNCTION NIL)
+    #S(ITEM :NAME "Dagger" :DESCRIPTION "A long, sharp knife, useful for self defence." :COST 20 :WEAPON "Yes" :FUNCTION NIL))
+   :WEAPONS (#S(WEAPON :NAME "Dagger" :DESCRIPTION "A long, sharp knife, useful for self defence." :TYPE "Knife" :DAMAGE 3)) :STARTING-PLACE "" :STARTING-MONEY 0)