-- TimeSpace Script generated by friends111's python script. Replace all %TODO% values accordingly, check for errors (packet-generation isn't perfect), and modify things if needed.
local Map = require('Map')
local Monster = require('Monster')
local Event = require('Event')
local MapObject = require('MapObject')
local MapNpc = require('MapNpc')
local Portal = require('Portal')
local Location = require('Location')
local TimeSpace = require('TimeSpace')
local PortalType = require("PortalType")
local PortalMinimapOrientation = require('PortalMinimapOrientation')
local TimeSpaceObjective = require('TimeSpaceObjective')
local TimeSpaceTaskType = require('TimeSpaceTaskType')
local TimeSpaceTask = require('TimeSpaceTask')

local objectives = TimeSpaceObjective.Create()
    .WithGoToExit()
    .WithProtectNPC()

local map_2_11 = Map.Create().WithMapId(4014).SetMapCoordinates(2, 11).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None)
) -- start
local map_3_11 = Map.Create().WithMapId(4004).SetMapCoordinates(3, 11).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None).WithOnStartDialog(6189)
)
local map_4_11 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 11).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6190).WithOnStartShout("TS_15_TEXT_0")
)
local map_4_10 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 10).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6190).WithOnStartShout("TS_15_TEXT_1")
)
local map_4_9 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 9).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6190).WithOnStartShout("TS_15_TEXT_2")
)
local map_4_8 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 8).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6190).WithOnStartShout("TS_15_TEXT_3")
)
local map_4_7 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 7).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6190).WithOnStartShout("TS_15_TEXT_4")
)
local map_4_6 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 6).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6190).WithOnStartShout("TS_15_TEXT_5")
)
local map_4_5 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 5).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6190).WithOnStartShout("TS_15_TEXT_6")
)
local map_4_4 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 4).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6191).WithOnStartShout("TS_15_TEXT_7")
)
local map_4_3 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 3).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6192).WithOnStartShout("TS_15_TEXT_8")
)
local map_4_2 = Map.Create().WithMapId(4012).SetMapCoordinates(4, 2).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None).WithOnStartDialog(6193).WithOnStartShout("TS_15_TEXT_9")
)
local map_5_2 = Map.Create().WithMapId(4004).SetMapCoordinates(5, 2).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None).WithOnStartDialog(6194)
)

local portal_2_11_to_3_11 = Portal.Create(PortalType.TsNormal).From(map_2_11, 17, 9).To(map_3_11, 0, 9).MinimapOrientation(PortalMinimapOrientation.East)
local portal_3_11_to_4_11 = Portal.Create(PortalType.TsNormal).From(map_3_11, 17, 9).To(map_4_11, 0, 9).MinimapOrientation(PortalMinimapOrientation.East)
local portal_3_11_to_2_11 = Portal.Create(PortalType.TsNormal).From(map_3_11, 0, 9).To(map_2_11, 17, 9).MinimapOrientation(PortalMinimapOrientation.West)
local portal_4_11_to_4_10 = Portal.Create(PortalType.Locked).From(map_4_11, 8, 0).To(map_4_10, 8, 17).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_11_to_3_11 = Portal.Create(PortalType.Locked).From(map_4_11, 0, 9).To(map_3_11, 17, 9).MinimapOrientation(PortalMinimapOrientation.West)
local portal_4_10_to_4_9 = Portal.Create(PortalType.Locked).From(map_4_10, 8, 0).To(map_4_9, 8, 17).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_10_to_4_11 = Portal.Create(PortalType.Locked).From(map_4_10, 8, 17).To(map_4_11, 8, 0).MinimapOrientation(PortalMinimapOrientation.South)
local portal_4_9_to_4_8 = Portal.Create(PortalType.Locked).From(map_4_9, 8, 0).To(map_4_8, 8, 17).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_9_to_4_10 = Portal.Create(PortalType.Locked).From(map_4_9, 8, 17).To(map_4_10, 8, 0).MinimapOrientation(PortalMinimapOrientation.South)
local portal_4_8_to_4_7 = Portal.Create(PortalType.Locked).From(map_4_8, 8, 0).To(map_4_7, 8, 17).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_8_to_4_9 = Portal.Create(PortalType.Locked).From(map_4_8, 8, 17).To(map_4_9, 8, 0).MinimapOrientation(PortalMinimapOrientation.South)
local portal_4_7_to_4_6 = Portal.Create(PortalType.Locked).From(map_4_7, 8, 0).To(map_4_6, 8, 17).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_7_to_4_8 = Portal.Create(PortalType.Locked).From(map_4_7, 8, 17).To(map_4_8, 8, 0).MinimapOrientation(PortalMinimapOrientation.South)
local portal_4_6_to_4_5 = Portal.Create(PortalType.Locked).From(map_4_6, 8, 0).To(map_4_5, 8, 17).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_6_to_4_7 = Portal.Create(PortalType.Locked).From(map_4_6, 8, 17).To(map_4_7, 8, 0).MinimapOrientation(PortalMinimapOrientation.South)
local portal_4_5_to_4_4 = Portal.Create(PortalType.Locked).From(map_4_5, 8, 0).To(map_4_4, 8, 17).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_5_to_4_6 = Portal.Create(PortalType.Locked).From(map_4_5, 8, 17).To(map_4_6, 8, 0).MinimapOrientation(PortalMinimapOrientation.South)
local portal_4_4_to_4_3 = Portal.Create(PortalType.Locked).From(map_4_4, 8, 0).To(map_4_3, 8, 17).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_4_to_4_5 = Portal.Create(PortalType.Locked).From(map_4_4, 8, 17).To(map_4_5, 8, 0).MinimapOrientation(PortalMinimapOrientation.South)
local portal_4_3_to_4_2 = Portal.Create(PortalType.Locked).From(map_4_3, 8, 0).To(map_4_2, 8, 17).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_3_to_4_4 = Portal.Create(PortalType.Locked).From(map_4_3, 8, 17).To(map_4_4, 8, 0).MinimapOrientation(PortalMinimapOrientation.South)
local portal_4_2_to_5_2 = Portal.Create(PortalType.TsNormal).From(map_4_2, 17, 9).To(map_5_2, 0, 9).MinimapOrientation(PortalMinimapOrientation.East)
local portal_4_2_to_4_3 = Portal.Create(PortalType.TsNormal).From(map_4_2, 8, 17).To(map_4_3, 8, 0).MinimapOrientation(PortalMinimapOrientation.South)
local portal_5_2_to_UNKNOWN = Portal.Create(PortalType.TSEnd).From(map_5_2, 17, 9).To(map_5_2, 17, 9).MinimapOrientation(PortalMinimapOrientation.East)
local portal_5_2_to_4_2 = Portal.Create(PortalType.TsNormal).From(map_5_2, 0, 9).To(map_4_2, 17, 9).MinimapOrientation(PortalMinimapOrientation.West)

map_2_11.AddPortal(portal_2_11_to_3_11)
map_3_11.AddPortal(portal_3_11_to_4_11)
map_3_11.AddPortal(portal_3_11_to_2_11)
map_4_11.AddPortal(portal_4_11_to_4_10)
map_4_11.AddPortal(portal_4_11_to_3_11)
map_4_10.AddPortal(portal_4_10_to_4_9)
map_4_10.AddPortal(portal_4_10_to_4_11)
map_4_9.AddPortal(portal_4_9_to_4_8)
map_4_9.AddPortal(portal_4_9_to_4_10)
map_4_8.AddPortal(portal_4_8_to_4_7)
map_4_8.AddPortal(portal_4_8_to_4_9)
map_4_7.AddPortal(portal_4_7_to_4_6)
map_4_7.AddPortal(portal_4_7_to_4_8)
map_4_6.AddPortal(portal_4_6_to_4_5)
map_4_6.AddPortal(portal_4_6_to_4_7)
map_4_5.AddPortal(portal_4_5_to_4_4)
map_4_5.AddPortal(portal_4_5_to_4_6)
map_4_4.AddPortal(portal_4_4_to_4_3)
map_4_4.AddPortal(portal_4_4_to_4_5)
map_4_3.AddPortal(portal_4_3_to_4_2)
map_4_3.AddPortal(portal_4_3_to_4_4)
map_4_2.AddPortal(portal_4_2_to_5_2)
map_4_2.AddPortal(portal_4_2_to_4_3)
map_5_2.AddPortal(portal_5_2_to_UNKNOWN)
map_5_2.AddPortal(portal_5_2_to_4_2)

--- Map 2_11
map_2_11.OnMapJoin({
    Event.TryStartTaskForMap(map_2_11),
})
---

--- Map 3_11
map_3_11.AddNpcs({
    MapNpc.CreateNpcWithVnum(317).At(3, 8).Facing(1).WithMustProtectAura().WithFollowPlayer(), -- Bob [16:45:57]
})
map_3_11.OnMapJoin({
    Event.TryStartTaskForMap(map_3_11),
})
---

--- Map 4_11
map_4_11.AddMonsters({
    Monster.CreateWithVnum(109).At(11, 6).Facing(2), -- Expy Miner [16:46:03]
    Monster.CreateWithVnum(111).At(9, 14).Facing(0), -- Tired Chief Miner [16:46:03]
    Monster.CreateWithVnum(109).At(9, 12).Facing(0), -- Expy Miner [16:46:03]
    Monster.CreateWithVnum(108).At(8, 7).Facing(0), -- Weak Expy Miner [16:46:03]
})
map_4_11.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(8, 13).Facing(1), -- Soldier of the NosVille Guards [16:46:03]
    MapNpc.CreateNpcWithVnum(320).At(8, 3).Facing(3), -- Soldier of the NosVille Guards [16:46:03]
    MapNpc.CreateNpcWithVnum(320).At(7, 11).Facing(1), -- Soldier of the NosVille Guards [16:46:03]
    MapNpc.CreateNpcWithVnum(320).At(7, 5).Facing(4), -- Soldier of the NosVille Guards [16:46:03]
    MapNpc.CreateNpcWithVnum(320).At(9, 6).Facing(4), -- Soldier of the NosVille Guards [16:46:03]
    MapNpc.CreateNpcWithVnum(320).At(5, 10).Facing(6), -- Soldier of the NosVille Guards [16:46:03]
    MapNpc.CreateNpcWithVnum(320).At(5, 8).Facing(2), -- Soldier of the NosVille Guards [16:46:03]
    MapNpc.CreateNpcWithVnum(337).At(3, 9).Facing(7).WithMustProtectAura().WithFollowPlayer().WithCustomLevel(25), -- Captain of the NosVille Guards [16:46:03]
})
map_4_11.OnMapJoin({
    Event.TryStartTaskForMap(map_4_11),
})
map_4_11.OnTaskFinish({
    Event.OpenPortal(portal_4_11_to_4_10),
    Event.OpenPortal(portal_4_11_to_3_11),
})
---

--- Map 4_10
map_4_10.AddMonsters({
    Monster.CreateWithVnum(109).At(11, 9).Facing(0), -- Expy Miner [16:46:19]
    Monster.CreateWithVnum(109).At(11, 6).Facing(5), -- Expy Miner [16:46:19]
    Monster.CreateWithVnum(111).At(9, 3).Facing(4), -- Tired Chief Miner [16:46:19]
    Monster.CreateWithVnum(108).At(8, 9).Facing(6), -- Weak Expy Miner [16:46:19]
    Monster.CreateWithVnum(108).At(8, 7).Facing(0), -- Weak Expy Miner [16:46:19]
})
map_4_10.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(8, 13).Facing(5), -- Soldier of the NosVille Guards [16:46:16]
    MapNpc.CreateNpcWithVnum(320).At(8, 3).Facing(1), -- Soldier of the NosVille Guards [16:46:16]
    MapNpc.CreateNpcWithVnum(320).At(7, 11).Facing(5), -- Soldier of the NosVille Guards [16:46:16]
    MapNpc.CreateNpcWithVnum(320).At(7, 5).Facing(7), -- Soldier of the NosVille Guards [16:46:16]
    MapNpc.CreateNpcWithVnum(320).At(6, 6).Facing(7), -- Soldier of the NosVille Guards [16:46:16]
    MapNpc.CreateNpcWithVnum(320).At(5, 10).Facing(4), -- Soldier of the NosVille Guards [16:46:16]
    MapNpc.CreateNpcWithVnum(320).At(5, 8).Facing(0), -- Soldier of the NosVille Guards [16:46:16]
})
map_4_10.OnMapJoin({
    Event.TryStartTaskForMap(map_4_10),
})
map_4_10.OnTaskFinish({
    Event.OpenPortal(portal_4_10_to_4_9),
    Event.OpenPortal(portal_4_10_to_4_11),
})
---

--- Map 4_9
map_4_9.AddMonsters({
    Monster.CreateWithVnum(109).At(9, 5).Facing(5), -- Expy Miner [16:46:32]
    Monster.CreateWithVnum(111).At(9, 3).Facing(1), -- Tired Chief Miner [16:46:32]
    Monster.CreateWithVnum(108).At(8, 9).Facing(6), -- Weak Expy Miner [16:46:32]
    Monster.CreateWithVnum(108).At(8, 7).Facing(1), -- Weak Expy Miner [16:46:32]
})
map_4_9.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(8, 13).Facing(6), -- Soldier of the NosVille Guards [16:46:29]
    MapNpc.CreateNpcWithVnum(320).At(8, 3).Facing(4), -- Soldier of the NosVille Guards [16:46:29]
    MapNpc.CreateNpcWithVnum(320).At(7, 11).Facing(1), -- Soldier of the NosVille Guards [16:46:29]
    MapNpc.CreateNpcWithVnum(320).At(7, 5).Facing(7), -- Soldier of the NosVille Guards [16:46:29]
    MapNpc.CreateNpcWithVnum(320).At(6, 6).Facing(6), -- Soldier of the NosVille Guards [16:46:29]
    MapNpc.CreateNpcWithVnum(320).At(5, 10).Facing(6), -- Soldier of the NosVille Guards [16:46:29]
    MapNpc.CreateNpcWithVnum(320).At(5, 8).Facing(6), -- Soldier of the NosVille Guards [16:46:29]
})
map_4_9.OnMapJoin({
    Event.TryStartTaskForMap(map_4_9),
})
map_4_9.OnTaskFinish({
    Event.OpenPortal(portal_4_9_to_4_8),
    Event.OpenPortal(portal_4_9_to_4_10),
})
---

--- Map 4_8
map_4_8.AddMonsters({
    Monster.CreateWithVnum(108).At(16, 9).Facing(5), -- Weak Expy Miner [16:46:42]
    Monster.CreateWithVnum(105).At(13, 7).Facing(0), -- Happy Miner [16:46:42]
    Monster.CreateWithVnum(111).At(11, 11).Facing(3), -- Tired Chief Miner [16:46:42]
    Monster.CreateWithVnum(105).At(11, 7).Facing(5), -- Happy Miner [16:46:42]
    Monster.CreateWithVnum(111).At(11, 6).Facing(3), -- Tired Chief Miner [16:46:42]
    Monster.CreateWithVnum(111).At(7, 9).Facing(0), -- Tired Chief Miner [16:46:42]
    Monster.CreateWithVnum(108).At(2, 9).Facing(5), -- Weak Expy Miner [16:46:42]
})
map_4_8.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(14, 9).Facing(0), -- Soldier of the NosVille Guards [16:46:42]
    MapNpc.CreateNpcWithVnum(320).At(12, 8).Facing(0), -- Soldier of the NosVille Guards [16:46:42]
    MapNpc.CreateNpcWithVnum(320).At(9, 12).Facing(3), -- Soldier of the NosVille Guards [16:46:42]
    MapNpc.CreateNpcWithVnum(320).At(9, 10).Facing(2), -- Soldier of the NosVille Guards [16:46:42]
    MapNpc.CreateNpcWithVnum(320).At(9, 7).Facing(4), -- Soldier of the NosVille Guards [16:46:42]
    MapNpc.CreateNpcWithVnum(320).At(7, 7).Facing(2), -- Soldier of the NosVille Guards [16:46:42]
    MapNpc.CreateNpcWithVnum(320).At(6, 10).Facing(7), -- Soldier of the NosVille Guards [16:46:42]
    MapNpc.CreateNpcWithVnum(320).At(4, 9).Facing(2), -- Soldier of the NosVille Guards [16:46:42]
    MapNpc.CreateNpcWithVnum(320).At(3, 7).Facing(0), -- Soldier of the NosVille Guards [16:46:42]
})
map_4_8.AddObjects({
    MapObject.CreateOldBox().At(2, 11), -- [16:46:42]
})
map_4_8.OnMapJoin({
    Event.TryStartTaskForMap(map_4_8),
})
map_4_8.OnTaskFinish({
    Event.OpenPortal(portal_4_8_to_4_7),
    Event.OpenPortal(portal_4_8_to_4_9),
})
---

--- Map 4_7
map_4_7.AddMonsters({
    Monster.CreateWithVnum(111).At(11, 11).Facing(2), -- Tired Chief Miner [16:47:09]
    Monster.CreateWithVnum(105).At(11, 7).Facing(5), -- Happy Miner [16:47:09]
    Monster.CreateWithVnum(111).At(11, 6).Facing(3), -- Tired Chief Miner [16:47:09]
    Monster.CreateWithVnum(111).At(10, 9).Facing(5), -- Tired Chief Miner [16:47:09]
    Monster.CreateWithVnum(111).At(6, 5).Facing(3), -- Tired Chief Miner [16:47:09]
    Monster.CreateWithVnum(108).At(2, 9).Facing(3), -- Weak Expy Miner [16:47:09]
})
map_4_7.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(14, 9).Facing(1), -- Soldier of the NosVille Guards [16:47:07]
    MapNpc.CreateNpcWithVnum(320).At(12, 10).Facing(5), -- Soldier of the NosVille Guards [16:47:07]
    MapNpc.CreateNpcWithVnum(320).At(9, 12).Facing(4), -- Soldier of the NosVille Guards [16:47:07]
    MapNpc.CreateNpcWithVnum(320).At(9, 10).Facing(5), -- Soldier of the NosVille Guards [16:47:07]
    MapNpc.CreateNpcWithVnum(320).At(9, 7).Facing(2), -- Soldier of the NosVille Guards [16:47:07]
    MapNpc.CreateNpcWithVnum(320).At(7, 7).Facing(1), -- Soldier of the NosVille Guards [16:47:07]
    MapNpc.CreateNpcWithVnum(320).At(6, 10).Facing(7), -- Soldier of the NosVille Guards [16:47:07]
    MapNpc.CreateNpcWithVnum(320).At(4, 9).Facing(7), -- Soldier of the NosVille Guards [16:47:07]
    MapNpc.CreateNpcWithVnum(320).At(3, 7).Facing(7), -- Soldier of the NosVille Guards [16:47:07]
})
map_4_7.OnMapJoin({
    Event.TryStartTaskForMap(map_4_7),
})
map_4_7.OnTaskFinish({
    Event.OpenPortal(portal_4_7_to_4_6),
    Event.OpenPortal(portal_4_7_to_4_8),
})
---

--- Map 4_6
map_4_6.AddMonsters({
    Monster.CreateWithVnum(109).At(9, 5).Facing(0), -- Expy Miner [16:47:25]
    Monster.CreateWithVnum(111).At(9, 3).Facing(7), -- Tired Chief Miner [16:47:25]
    Monster.CreateWithVnum(108).At(8, 9).Facing(2), -- Weak Expy Miner [16:47:25]
    Monster.CreateWithVnum(108).At(8, 7).Facing(3), -- Weak Expy Miner [16:47:25]
})
map_4_6.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(8, 13).Facing(0), -- Soldier of the NosVille Guards [16:47:22]
    MapNpc.CreateNpcWithVnum(320).At(8, 3).Facing(1), -- Soldier of the NosVille Guards [16:47:22]
    MapNpc.CreateNpcWithVnum(320).At(7, 11).Facing(0), -- Soldier of the NosVille Guards [16:47:22]
    MapNpc.CreateNpcWithVnum(320).At(7, 5).Facing(6), -- Soldier of the NosVille Guards [16:47:22]
    MapNpc.CreateNpcWithVnum(320).At(6, 6).Facing(3), -- Soldier of the NosVille Guards [16:47:22]
    MapNpc.CreateNpcWithVnum(320).At(5, 10).Facing(0), -- Soldier of the NosVille Guards [16:47:22]
    MapNpc.CreateNpcWithVnum(320).At(5, 8).Facing(0), -- Soldier of the NosVille Guards [16:47:22]
})
map_4_6.OnMapJoin({
    Event.TryStartTaskForMap(map_4_6),
})
map_4_6.OnTaskFinish({
    Event.OpenPortal(portal_4_6_to_4_7),
    Event.OpenPortal(portal_4_6_to_4_5),
})
---

--- Map 4_5
map_4_5.AddMonsters({
    Monster.CreateWithVnum(108).At(16, 9).Facing(5), -- Weak Expy Miner [16:47:37]
    Monster.CreateWithVnum(105).At(13, 7).Facing(6), -- Happy Miner [16:47:37]
    Monster.CreateWithVnum(111).At(11, 11).Facing(1), -- Tired Chief Miner [16:47:37]
    Monster.CreateWithVnum(105).At(11, 7).Facing(1), -- Happy Miner [16:47:37]
    Monster.CreateWithVnum(111).At(6, 12).Facing(0), -- Tired Chief Miner [16:47:37]
    Monster.CreateWithVnum(111).At(6, 5).Facing(3), -- Tired Chief Miner [16:47:37]
    Monster.CreateWithVnum(108).At(2, 9).Facing(0), -- Weak Expy Miner [16:47:37]
})
map_4_5.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(14, 9).Facing(1), -- Soldier of the NosVille Guards [16:47:35]
    MapNpc.CreateNpcWithVnum(320).At(12, 10).Facing(3), -- Soldier of the NosVille Guards [16:47:35]
    MapNpc.CreateNpcWithVnum(320).At(9, 12).Facing(1), -- Soldier of the NosVille Guards [16:47:35]
    MapNpc.CreateNpcWithVnum(320).At(9, 10).Facing(6), -- Soldier of the NosVille Guards [16:47:35]
    MapNpc.CreateNpcWithVnum(320).At(9, 7).Facing(7), -- Soldier of the NosVille Guards [16:47:35]
    MapNpc.CreateNpcWithVnum(320).At(7, 7).Facing(4), -- Soldier of the NosVille Guards [16:47:35]
    MapNpc.CreateNpcWithVnum(320).At(6, 10).Facing(5), -- Soldier of the NosVille Guards [16:47:35]
    MapNpc.CreateNpcWithVnum(320).At(4, 9).Facing(0), -- Soldier of the NosVille Guards [16:47:35]
    MapNpc.CreateNpcWithVnum(320).At(3, 7).Facing(6), -- Soldier of the NosVille Guards [16:47:35]
})
map_4_5.OnMapJoin({
    Event.TryStartTaskForMap(map_4_5),
})
map_4_5.OnTaskFinish({
    Event.OpenPortal(portal_4_5_to_4_4),
    Event.OpenPortal(portal_4_5_to_4_6),
})
---

--- Map 4_4
map_4_4.AddMonsters({
    Monster.CreateWithVnum(108).At(16, 9).Facing(5), -- Weak Expy Miner [16:48:00]
    Monster.CreateWithVnum(105).At(13, 7).Facing(6), -- Happy Miner [16:48:00]
    Monster.CreateWithVnum(111).At(11, 11).Facing(2), -- Tired Chief Miner [16:48:00]
    Monster.CreateWithVnum(111).At(6, 12).Facing(3), -- Tired Chief Miner [16:48:00]
    Monster.CreateWithVnum(111).At(6, 5).Facing(4), -- Tired Chief Miner [16:48:00]
    Monster.CreateWithVnum(108).At(2, 9).Facing(0), -- Weak Expy Miner [16:48:00]
})
map_4_4.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(14, 9).Facing(7), -- Soldier of the NosVille Guards [16:47:59]
    MapNpc.CreateNpcWithVnum(320).At(12, 10).Facing(2), -- Soldier of the NosVille Guards [16:47:59]
    MapNpc.CreateNpcWithVnum(320).At(9, 12).Facing(3), -- Soldier of the NosVille Guards [16:47:59]
    MapNpc.CreateNpcWithVnum(320).At(9, 10).Facing(5), -- Soldier of the NosVille Guards [16:47:59]
    MapNpc.CreateNpcWithVnum(320).At(9, 7).Facing(5), -- Soldier of the NosVille Guards [16:47:59]
    MapNpc.CreateNpcWithVnum(320).At(7, 7).Facing(1), -- Soldier of the NosVille Guards [16:47:59]
    MapNpc.CreateNpcWithVnum(320).At(6, 10).Facing(6), -- Soldier of the NosVille Guards [16:47:59]
    MapNpc.CreateNpcWithVnum(320).At(4, 9).Facing(2), -- Soldier of the NosVille Guards [16:47:59]
    MapNpc.CreateNpcWithVnum(320).At(3, 7).Facing(6), -- Soldier of the NosVille Guards [16:47:59]
})
map_4_4.AddObjects({
    MapObject.CreateOldBox().At(16, 7),
    MapObject.CreateOldBox().At(15, 7),
})
map_4_4.OnMapJoin({
    Event.TryStartTaskForMap(map_4_4),
})
map_4_4.OnTaskFinish({
    Event.OpenPortal(portal_4_4_to_4_5),
    Event.OpenPortal(portal_4_4_to_4_3),
})
---

--- Map 4_3
map_4_3.AddMonsters({
    Monster.CreateWithVnum(108).At(16, 9).Facing(4), -- Weak Expy Miner [16:48:16]
    Monster.CreateWithVnum(111).At(10, 9).Facing(1), -- Tired Chief Miner [16:48:16]
    Monster.CreateWithVnum(105).At(10, 8).Facing(2), -- Happy Miner [16:48:16]
    Monster.CreateWithVnum(111).At(9, 4).Facing(2), -- Tired Chief Miner [16:48:16]
    Monster.CreateWithVnum(111).At(6, 12).Facing(0), -- Tired Chief Miner [16:48:16]
    Monster.CreateWithVnum(111).At(6, 5).Facing(6), -- Tired Chief Miner [16:48:16]
    Monster.CreateWithVnum(108).At(2, 9).Facing(5), -- Weak Expy Miner [16:48:16]
    Monster.CreateWithVnum(112).At(8, 9).Facing(6).SpawnAfterMobsKilled(4), -- Chief Miner [16:48:20]
})
map_4_3.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(14, 9).Facing(7), -- Soldier of the NosVille Guards [16:48:14]
    MapNpc.CreateNpcWithVnum(320).At(12, 10).Facing(5), -- Soldier of the NosVille Guards [16:48:14]
    MapNpc.CreateNpcWithVnum(320).At(9, 12).Facing(0), -- Soldier of the NosVille Guards [16:48:14]
    MapNpc.CreateNpcWithVnum(320).At(9, 10).Facing(2), -- Soldier of the NosVille Guards [16:48:14]
    MapNpc.CreateNpcWithVnum(320).At(9, 7).Facing(2), -- Soldier of the NosVille Guards [16:48:14]
    MapNpc.CreateNpcWithVnum(320).At(7, 7).Facing(3), -- Soldier of the NosVille Guards [16:48:14]
    MapNpc.CreateNpcWithVnum(320).At(6, 10).Facing(3), -- Soldier of the NosVille Guards [16:48:14]
    MapNpc.CreateNpcWithVnum(320).At(4, 9).Facing(2), -- Soldier of the NosVille Guards [16:48:14]
    MapNpc.CreateNpcWithVnum(320).At(3, 7).Facing(7), -- Soldier of the NosVille Guards [16:48:14]
})
map_4_3.OnMapJoin({
    Event.TryStartTaskForMap(map_4_3),
})
map_4_3.OnTaskFinish({
    Event.OpenPortal(portal_4_3_to_4_4),
    Event.OpenPortal(portal_4_3_to_4_2),
})
---

--- Map 4_2
map_4_2.AddNpcs({
    MapNpc.CreateNpcWithVnum(320).At(12, 8).Facing(7), -- Soldier of the NosVille Guards [16:48:27]
    MapNpc.CreateNpcWithVnum(320).At(11, 10).Facing(3), -- Soldier of the NosVille Guards [16:48:27]
    MapNpc.CreateNpcWithVnum(111).At(10, 8).Facing(6), -- Tired Chief Miner [16:48:27]
    MapNpc.CreateNpcWithVnum(320).At(10, 6).Facing(1), -- Soldier of the NosVille Guards [16:48:27]
    MapNpc.CreateNpcWithVnum(320).At(9, 12).Facing(3), -- Soldier of the NosVille Guards [16:48:27]
    MapNpc.CreateNpcWithVnum(111).At(9, 8).Facing(1), -- Tired Chief Miner [16:48:27]
    MapNpc.CreateNpcWithVnum(337).At(8, 11).Facing(1), -- Captain of the NosVille Guards [16:48:27]
    MapNpc.CreateNpcWithVnum(111).At(8, 9).Facing(3), -- Tired Chief Miner [16:48:27]
    MapNpc.CreateNpcWithVnum(111).At(8, 7).Facing(3), -- Tired Chief Miner [16:48:27]
    MapNpc.CreateNpcWithVnum(320).At(8, 5).Facing(1), -- Soldier of the NosVille Guards [16:48:27]
    MapNpc.CreateNpcWithVnum(111).At(7, 10).Facing(3), -- Tired Chief Miner [16:48:27]
    MapNpc.CreateNpcWithVnum(111).At(7, 8).Facing(5), -- Tired Chief Miner [16:48:27]
    MapNpc.CreateNpcWithVnum(320).At(6, 11).Facing(4), -- Soldier of the NosVille Guards [16:48:27]
    MapNpc.CreateNpcWithVnum(320).At(6, 6).Facing(4), -- Soldier of the NosVille Guards [16:48:27]
    MapNpc.CreateNpcWithVnum(320).At(5, 8).Facing(0), -- Soldier of the NosVille Guards [16:48:27]
})
map_4_2.OnMapJoin({
    Event.TryStartTaskForMap(map_4_2),
})
---

--- Map 5_2
map_5_2.OnMapJoin({
    Event.TryStartTaskForMap(map_5_2),
})
---

local ts = TimeSpace.Create(15)  -- TimeSpace ID
    .SetMaps({map_2_11, map_3_11, map_4_11, map_4_10, map_4_9, map_4_8, map_4_7, map_4_6, map_4_5, map_4_4, map_4_3, map_4_2, map_5_2})
    .SetSpawn(Location.InMap(map_2_11).At(7, 7))
    .SetLives(3)
    .SetObjectives(objectives)
    .SetDurationInSeconds(1300)
    .SetBonusPointItemDropChance(5000)
    .SetObtainablePartner(317) -- Bob
return ts
