Dylan commited on
Commit
486fca4
·
1 Parent(s): 032bba8

added retriever, more random tables

Browse files
Files changed (8) hide show
  1. app.py +90 -26
  2. data/districts.csv +36 -0
  3. data/rumors.csv +216 -0
  4. data/seasons.csv +36 -0
  5. data/setting.md +662 -0
  6. requirements.txt +2 -0
  7. retriever.py +50 -0
  8. tools/visit_webpage.py +2 -0
app.py CHANGED
@@ -2,6 +2,7 @@ from smolagents import CodeAgent,DuckDuckGoSearchTool, HfApiModel,load_tool,tool
2
  import datetime
3
  import requests
4
  import pytz
 
5
  import yaml
6
  import random
7
  from tools.final_answer import FinalAnswerTool
@@ -9,14 +10,16 @@ from tools.final_answer import FinalAnswerTool
9
  from Gradio_UI import GradioUI
10
 
11
  @tool
12
- def get_word_prompt(die_roll: str) -> str:
13
- """A tool that generates a random word prompt based on a 3d6 roll.
14
  Args:
15
  die_roll: A string representing the result of the roll (e.g. "111", "222", "333", ..., "666").
 
 
16
  """
17
  # read the word_prompts.csv
18
  dict_word_prompts = {}
19
- with open("word_prompts.csv", "r") as f:
20
  lines = f.readlines()
21
  dict_word_prompts = {line.split(",")[0]: line.split(",")[1].strip() for line in lines}
22
 
@@ -27,6 +30,69 @@ def get_word_prompt(die_roll: str) -> str:
27
  else:
28
  return f"Invalid die roll '{die_roll}'. Please provide a valid 3d6 roll (e.g., '111', '222', '333', ..., '666')."
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  @tool
31
  def get_oracle_result(likelihood_of_favorable_outcome: str) -> str:
32
  """A tool that provides a yes/no answer based on a likelihood of a favorable outcome.
@@ -66,51 +132,49 @@ def get_oracle_result(likelihood_of_favorable_outcome: str) -> str:
66
  else:
67
  return "No. That's a critical failure. There are negative consequences, plus something else goes wrong."
68
 
69
-
70
-
71
- @tool
72
- def get_current_time_in_timezone(timezone: str) -> str:
73
- """A tool that fetches the current local time in a specified timezone.
74
- Args:
75
- timezone: A string representing a valid timezone (e.g., 'America/New_York').
76
- """
77
- try:
78
- # Create timezone object
79
- tz = pytz.timezone(timezone)
80
- # Get current time in that timezone
81
- local_time = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
82
- return f"The current local time in {timezone} is: {local_time}"
83
- except Exception as e:
84
- return f"Error fetching time for timezone '{timezone}': {str(e)}"
85
-
86
-
87
  final_answer = FinalAnswerTool()
88
 
89
  # If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
90
  # model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
91
 
92
- model = HfApiModel(
93
  max_tokens=2096,
94
  temperature=0.5,
95
  model_id='Qwen/Qwen2.5-Coder-32B-Instruct',# it is possible that this model may be overloaded
96
  custom_role_conversions=None,
97
  )
98
 
 
 
99
 
100
  # Import tool from Hub
101
  image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
102
 
103
  with open("prompts.yaml", 'r') as stream:
104
  prompt_templates = yaml.safe_load(stream)
 
 
 
 
 
 
 
 
 
 
 
 
 
105
 
106
  agent = CodeAgent(
107
- model=model,
108
- tools=[final_answer, image_generation_tool, get_oracle_result, get_word_prompt],
 
109
  max_steps=6,
110
  verbosity_level=1,
111
  grammar=None,
112
- planning_interval=None,
113
- name=None,
114
  description=None,
115
  prompt_templates=prompt_templates
116
  )
 
2
  import datetime
3
  import requests
4
  import pytz
5
+ from retriever import BladesInTheDarkRetrievalTool, prepare_docs
6
  import yaml
7
  import random
8
  from tools.final_answer import FinalAnswerTool
 
10
  from Gradio_UI import GradioUI
11
 
12
  @tool
13
+ def get_random_encounter(die_roll: str) -> str:
14
+ """A tool that generates a random encounter or situation through a random word prompt based on a 3d6 roll.
15
  Args:
16
  die_roll: A string representing the result of the roll (e.g. "111", "222", "333", ..., "666").
17
+ Returns:
18
+ str: a word prompt to be interpreted as a random encounter or situation.
19
  """
20
  # read the word_prompts.csv
21
  dict_word_prompts = {}
22
+ with open("data/word_prompts.csv", "r") as f:
23
  lines = f.readlines()
24
  dict_word_prompts = {line.split(",")[0]: line.split(",")[1].strip() for line in lines}
25
 
 
30
  else:
31
  return f"Invalid die roll '{die_roll}'. Please provide a valid 3d6 roll (e.g., '111', '222', '333', ..., '666')."
32
 
33
+
34
+ @tool
35
+ def get_street_rumor(die_roll: str) -> str:
36
+ """
37
+ A tool that generates a random street rumor based on a 3d6 roll.
38
+ Args:
39
+ die_roll: A string representing the result of the roll (e.g. "111", "222", "333", ..., "666").
40
+ Returns:
41
+ str: A random interpretable street rumor based on the die roll.
42
+ """
43
+ dict_street_rumors = {}
44
+ with open("data/rumors.csv", "r") as f:
45
+ lines = f.readlines()
46
+ dict_street_rumors = {line.split(",")[0]: line.split(",")[1].strip() for line in lines}
47
+
48
+ rumor = dict_street_rumors.get(die_roll)
49
+ if rumor:
50
+ return f"Street rumor: \"{rumor}\""
51
+ else:
52
+ return f"Invalid die roll '{die_roll}'. Please provide a valid 3d6 roll (e.g., '111', '222', '333', ..., '666')."
53
+
54
+ @tool
55
+ def get_season_or_city_event(die_roll: str) -> str:
56
+ """
57
+ A tool that generates a random season and a specific city event based on a 2d6 roll
58
+ Args:
59
+ die_roll: A string representing the result of the roll (e.g. "11", "12", "13", ..., "66").
60
+ Returns:
61
+ str: A random interpretable season and city event based on the die roll.
62
+ """
63
+ dict_events = {}
64
+ with open("data/seasons.csv", "r") as f:
65
+ lines = f.readlines()
66
+ dict_events = {line.split(",")[0]: line.split(",")[1].strip() for line in lines}
67
+ event = dict_events.get(die_roll)
68
+ if event:
69
+ return f"Season and City Event: \"{event}\""
70
+ else:
71
+ return f"Invalid die roll '{die_roll}'. Please provide a valid 2d6 roll (e.g., '11', '12', '13', ..., '66')."
72
+
73
+
74
+ @tool
75
+ def get_district_and_place(die_roll: str) -> str:
76
+ """
77
+ A tool that generates a random district and a specific place based on a 2d6 roll.
78
+ Args:
79
+ die_roll: A string representing the result of the roll (e.g. "11", "12", "13", ..., "66").
80
+ Returns:
81
+ str: A random interpretable district based on the die roll.
82
+ """
83
+ dict_districts = {}
84
+ with open("data/districts.csv", "r") as f:
85
+ lines = f.readlines()
86
+ dict_districts = {line.split(",")[0]: line.split(",")[1].strip() for line in lines}
87
+
88
+ district = dict_districts.get(die_roll)
89
+ if district:
90
+ return f"District: \"{district}\""
91
+ else:
92
+ return f"Invalid die roll '{die_roll}'. Please provide a valid 2d6 roll (e.g., '11', '12', '13', ..., '66')."
93
+
94
+
95
+
96
  @tool
97
  def get_oracle_result(likelihood_of_favorable_outcome: str) -> str:
98
  """A tool that provides a yes/no answer based on a likelihood of a favorable outcome.
 
132
  else:
133
  return "No. That's a critical failure. There are negative consequences, plus something else goes wrong."
134
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135
  final_answer = FinalAnswerTool()
136
 
137
  # If the agent does not answer, the model is overloaded, please use another model or the following Hugging Face Endpoint that also contains qwen2.5 coder:
138
  # model_id='https://pflgm2locj2t89co.us-east-1.aws.endpoints.huggingface.cloud'
139
 
140
+ retrieval_model = HfApiModel(
141
  max_tokens=2096,
142
  temperature=0.5,
143
  model_id='Qwen/Qwen2.5-Coder-32B-Instruct',# it is possible that this model may be overloaded
144
  custom_role_conversions=None,
145
  )
146
 
147
+ planning_model = HfApiModel("deepseek-ai/DeepSeek-R1", provider="together", max_tokens=8096)
148
+
149
 
150
  # Import tool from Hub
151
  image_generation_tool = load_tool("agents-course/text-to-image", trust_remote_code=True)
152
 
153
  with open("prompts.yaml", 'r') as stream:
154
  prompt_templates = yaml.safe_load(stream)
155
+
156
+ retriever_tool = BladesInTheDarkRetrievalTool()
157
+
158
+ retriever_agent = CodeAgent(
159
+ model=retrieval_model,
160
+ tools=[
161
+ retriever_tool, DuckDuckGoSearchTool()
162
+ ],
163
+ name="retrieval_agent",
164
+ description="Retrieves information from the Blades in the Dark setting and also searches the web for more information.",
165
+ verbosity_level=0,
166
+ max_steps=5,
167
+ )
168
 
169
  agent = CodeAgent(
170
+ model=planning_model,
171
+ managed_agents=[retriever_agent],
172
+ tools=[final_answer, image_generation_tool, get_oracle_result, get_street_rumor, get_random_encounter, get_season_or_city_event, get_district_and_place],
173
  max_steps=6,
174
  verbosity_level=1,
175
  grammar=None,
176
+ planning_interval=2,
177
+ name="Game Master Helper",
178
  description=None,
179
  prompt_templates=prompt_templates
180
  )
data/districts.csv ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 11, Whitecrown & Brightstone + Electroplasm-lit gardens
2
+ 12, Whitecrown & Brightstone + Private ghost-wardens
3
+ 13, Whitecrown & Brightstone + Gilded carriages
4
+ 14, Whitecrown & Brightstone + Dueling grounds
5
+ 15, Whitecrown & Brightstone + Private canal gondolas
6
+ 16, Whitecrown & Brightstone + Leviathan blood markets
7
+ 21, Charterhall & Six Towers + Academic processions
8
+ 22, Charterhall & Six Towers + Spirit bottle collectors
9
+ 23, Charterhall & Six Towers + Forgotten libraries
10
+ 24, Charterhall & Six Towers + Ancient foundations
11
+ 25, Charterhall & Six Towers + Crumbling manors
12
+ 26, Charterhall & Six Towers + Occult archives
13
+ 31, Silkshore & Nightmarket + Red-lamp pavilions
14
+ 32, Silkshore & Nightmarket + Underground auctions
15
+ 33, Silkshore & Nightmarket + Fortune teller stalls
16
+ 34, Silkshore & Nightmarket + Pleasure boat parties
17
+ 35, Silkshore & Nightmarket + Mask merchant shops
18
+ 36, Silkshore & Nightmarket + Strange goods bazaars
19
+ 41, Crow's Foot & The Docks + Gang territory markers
20
+ 42, Crow's Foot & The Docks + Fighting pits
21
+ 43, Crow's Foot & The Docks + Canal smuggler boats
22
+ 44, Crow's Foot & The Docks + Tavern brawls
23
+ 45, Crow's Foot & The Docks + Street market scams
24
+ 46, Crow's Foot & The Docks + Ship crew gatherings
25
+ 51, Coalridge & Charhollow + Factory smoke stacks
26
+ 52, Coalridge & Charhollow + Worker protests
27
+ 53, Coalridge & Charhollow + Skovlander prayers
28
+ 54, Coalridge & Charhollow + Coal dust clouds
29
+ 55, Coalridge & Charhollow + Steam pipe vents
30
+ 56, Coalridge & Charhollow + Rail car squatters
31
+ 61, Barrowcleft & Dunslough + Radiant energy farms
32
+ 62, Barrowcleft & Dunslough + Prison work gangs
33
+ 63, Barrowcleft & Dunslough + Refugee camps
34
+ 64, Barrowcleft & Dunslough + Goat herders
35
+ 65, Barrowcleft & Dunslough + Scavenger markets
36
+ 66, Barrowcleft & Dunslough + Mud quarter hovels
data/rumors.csv ADDED
@@ -0,0 +1,216 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 111, Brightstone heir + Ancient artifact + Assassin's contract
2
+ 112, Brightstone heir + Ancient artifact + Dying curse
3
+ 113, Brightstone heir + Ancient artifact + Rival crew
4
+ 114, Brightstone heir + Ancient artifact + Unexpected heir
5
+ 115, Brightstone heir + Ancient artifact + Spirit Wardens aware
6
+ 116, Brightstone heir + Ancient artifact + Public scandal
7
+ 121, Brightstone heir + Ghost field insight + Assassin's contract
8
+ 122, Brightstone heir + Ghost field insight + Dying curse
9
+ 123, Brightstone heir + Ghost field insight + Rival crew
10
+ 124, Brightstone heir + Ghost field insight + Unexpected heir
11
+ 125, Brightstone heir + Ghost field insight + Spirit Wardens aware
12
+ 126, Brightstone heir + Ghost field insight + Public scandal
13
+ 131, Brightstone heir + Blood price + Assassin's contract
14
+ 132, Brightstone heir + Blood price + Dying curse
15
+ 133, Brightstone heir + Blood price + Rival crew
16
+ 134, Brightstone heir + Blood price + Unexpected heir
17
+ 135, Brightstone heir + Blood price + Spirit Wardens aware
18
+ 136, Brightstone heir + Blood price + Public scandal
19
+ 141, Brightstone heir + Strange mutation + Assassin's contract
20
+ 142, Brightstone heir + Strange mutation + Dying curse
21
+ 143, Brightstone heir + Strange mutation + Rival crew
22
+ 144, Brightstone heir + Strange mutation + Unexpected heir
23
+ 145, Brightstone heir + Strange mutation + Spirit Wardens aware
24
+ 146, Brightstone heir + Strange mutation + Public scandal
25
+ 151, Brightstone heir + Abandoned manor + Assassin's contract
26
+ 152, Brightstone heir + Abandoned manor + Dying curse
27
+ 153, Brightstone heir + Abandoned manor + Rival crew
28
+ 154, Brightstone heir + Abandoned manor + Unexpected heir
29
+ 155, Brightstone heir + Abandoned manor + Spirit Wardens aware
30
+ 156, Brightstone heir + Abandoned manor + Public scandal
31
+ 161, Brightstone heir + Forbidden love + Assassin's contract
32
+ 162, Brightstone heir + Forbidden love + Dying curse
33
+ 163, Brightstone heir + Forbidden love + Rival crew
34
+ 164, Brightstone heir + Forbidden love + Unexpected heir
35
+ 165, Brightstone heir + Forbidden love + Spirit Wardens aware
36
+ 166, Brightstone heir + Forbidden love + Public scandal
37
+ 211, Gang lieutenant + Ancient artifact + Assassin's contract
38
+ 212, Gang lieutenant + Ancient artifact + Dying curse
39
+ 213, Gang lieutenant + Ancient artifact + Rival crew
40
+ 214, Gang lieutenant + Ancient artifact + Unexpected heir
41
+ 215, Gang lieutenant + Ancient artifact + Spirit Wardens aware
42
+ 216, Gang lieutenant + Ancient artifact + Public scandal
43
+ 221, Gang lieutenant + Ghost field insight + Assassin's contract
44
+ 222, Gang lieutenant + Ghost field insight + Dying curse
45
+ 223, Gang lieutenant + Ghost field insight + Rival crew
46
+ 224, Gang lieutenant + Ghost field insight + Unexpected heir
47
+ 225, Gang lieutenant + Ghost field insight + Spirit Wardens aware
48
+ 226, Gang lieutenant + Ghost field insight + Public scandal
49
+ 231, Gang lieutenant + Blood price + Assassin's contract
50
+ 232, Gang lieutenant + Blood price + Dying curse
51
+ 233, Gang lieutenant + Blood price + Rival crew
52
+ 234, Gang lieutenant + Blood price + Unexpected heir
53
+ 235, Gang lieutenant + Blood price + Spirit Wardens aware
54
+ 236, Gang lieutenant + Blood price + Public scandal
55
+ 241, Gang lieutenant + Strange mutation + Assassin's contract
56
+ 242, Gang lieutenant + Strange mutation + Dying curse
57
+ 243, Gang lieutenant + Strange mutation + Rival crew
58
+ 244, Gang lieutenant + Strange mutation + Unexpected heir
59
+ 245, Gang lieutenant + Strange mutation + Spirit Wardens aware
60
+ 246, Gang lieutenant + Strange mutation + Public scandal
61
+ 251, Gang lieutenant + Abandoned manor + Assassin's contract
62
+ 252, Gang lieutenant + Abandoned manor + Dying curse
63
+ 253, Gang lieutenant + Abandoned manor + Rival crew
64
+ 254, Gang lieutenant + Abandoned manor + Unexpected heir
65
+ 255, Gang lieutenant + Abandoned manor + Spirit Wardens aware
66
+ 256, Gang lieutenant + Abandoned manor + Public scandal
67
+ 261, Gang lieutenant + Forbidden love + Assassin's contract
68
+ 262, Gang lieutenant + Forbidden love + Dying curse
69
+ 263, Gang lieutenant + Forbidden love + Rival crew
70
+ 264, Gang lieutenant + Forbidden love + Unexpected heir
71
+ 265, Gang lieutenant + Forbidden love + Spirit Wardens aware
72
+ 266, Gang lieutenant + Forbidden love + Public scandal
73
+ 311, Spirit trafficker + Ancient artifact + Assassin's contract
74
+ 312, Spirit trafficker + Ancient artifact + Dying curse
75
+ 313, Spirit trafficker + Ancient artifact + Rival crew
76
+ 314, Spirit trafficker + Ancient artifact + Unexpected heir
77
+ 315, Spirit trafficker + Ancient artifact + Spirit Wardens aware
78
+ 316, Spirit trafficker + Ancient artifact + Public scandal
79
+ 321, Spirit trafficker + Ghost field insight + Assassin's contract
80
+ 322, Spirit trafficker + Ghost field insight + Dying curse
81
+ 323, Spirit trafficker + Ghost field insight + Rival crew
82
+ 324, Spirit trafficker + Ghost field insight + Unexpected heir
83
+ 325, Spirit trafficker + Ghost field insight + Spirit Wardens aware
84
+ 326, Spirit trafficker + Ghost field insight + Public scandal
85
+ 331, Spirit trafficker + Blood price + Assassin's contract
86
+ 332, Spirit trafficker + Blood price + Dying curse
87
+ 333, Spirit trafficker + Blood price + Rival crew
88
+ 334, Spirit trafficker + Blood price + Unexpected heir
89
+ 335, Spirit trafficker + Blood price + Spirit Wardens aware
90
+ 336, Spirit trafficker + Blood price + Public scandal
91
+ 341, Spirit trafficker + Strange mutation + Assassin's contract
92
+ 342, Spirit trafficker + Strange mutation + Dying curse
93
+ 343, Spirit trafficker + Strange mutation + Rival crew
94
+ 344, Spirit trafficker + Strange mutation + Unexpected heir
95
+ 345, Spirit trafficker + Strange mutation + Spirit Wardens aware
96
+ 346, Spirit trafficker + Strange mutation + Public scandal
97
+ 351, Spirit trafficker + Abandoned manor + Assassin's contract
98
+ 352, Spirit trafficker + Abandoned manor + Dying curse
99
+ 353, Spirit trafficker + Abandoned manor + Rival crew
100
+ 354, Spirit trafficker + Abandoned manor + Unexpected heir
101
+ 355, Spirit trafficker + Abandoned manor + Spirit Wardens aware
102
+ 356, Spirit trafficker + Abandoned manor + Public scandal
103
+ 361, Spirit trafficker + Forbidden love + Assassin's contract
104
+ 362, Spirit trafficker + Forbidden love + Dying curse
105
+ 363, Spirit trafficker + Forbidden love + Rival crew
106
+ 364, Spirit trafficker + Forbidden love + Unexpected heir
107
+ 365, Spirit trafficker + Forbidden love + Spirit Wardens aware
108
+ 366, Spirit trafficker + Forbidden love + Public scandal
109
+ 411, Corrupt inspector + Ancient artifact + Assassin's contract
110
+ 412, Corrupt inspector + Ancient artifact + Dying curse
111
+ 413, Corrupt inspector + Ancient artifact + Rival crew
112
+ 414, Corrupt inspector + Ancient artifact + Unexpected heir
113
+ 415, Corrupt inspector + Ancient artifact + Spirit Wardens aware
114
+ 416, Corrupt inspector + Ancient artifact + Public scandal
115
+ 421, Corrupt inspector + Ghost field insight + Assassin's contract
116
+ 422, Corrupt inspector + Ghost field insight + Dying curse
117
+ 423, Corrupt inspector + Ghost field insight + Rival crew
118
+ 424, Corrupt inspector + Ghost field insight + Unexpected heir
119
+ 425, Corrupt inspector + Ghost field insight + Spirit Wardens aware
120
+ 426, Corrupt inspector + Ghost field insight + Public scandal
121
+ 431, Corrupt inspector + Blood price + Assassin's contract
122
+ 432, Corrupt inspector + Blood price + Dying curse
123
+ 433, Corrupt inspector + Blood price + Rival crew
124
+ 434, Corrupt inspector + Blood price + Unexpected heir
125
+ 435, Corrupt inspector + Blood price + Spirit Wardens aware
126
+ 436, Corrupt inspector + Blood price + Public scandal
127
+ 441, Corrupt inspector + Strange mutation + Assassin's contract
128
+ 442, Corrupt inspector + Strange mutation + Dying curse
129
+ 443, Corrupt inspector + Strange mutation + Rival crew
130
+ 444, Corrupt inspector + Strange mutation + Unexpected heir
131
+ 445, Corrupt inspector + Strange mutation + Spirit Wardens aware
132
+ 446, Corrupt inspector + Strange mutation + Public scandal
133
+ 451, Corrupt inspector + Abandoned manor + Assassin's contract
134
+ 452, Corrupt inspector + Abandoned manor + Dying curse
135
+ 453, Corrupt inspector + Abandoned manor + Rival crew
136
+ 454, Corrupt inspector + Abandoned manor + Unexpected heir
137
+ 455, Corrupt inspector + Abandoned manor + Spirit Wardens aware
138
+ 456, Corrupt inspector + Abandoned manor + Public scandal
139
+ 461, Corrupt inspector + Forbidden love + Assassin's contract
140
+ 462, Corrupt inspector + Forbidden love + Dying curse
141
+ 463, Corrupt inspector + Forbidden love + Rival crew
142
+ 464, Corrupt inspector + Forbidden love + Unexpected heir
143
+ 465, Corrupt inspector + Forbidden love + Spirit Wardens aware
144
+ 466, Corrupt inspector + Forbidden love + Public scandal
145
+ 511, Ecstatic priest + Ancient artifact + Assassin's contract
146
+ 512, Ecstatic priest + Ancient artifact + Dying curse
147
+ 513, Ecstatic priest + Ancient artifact + Rival crew
148
+ 514, Ecstatic priest + Ancient artifact + Unexpected heir
149
+ 515, Ecstatic priest + Ancient artifact + Spirit Wardens aware
150
+ 516, Ecstatic priest + Ancient artifact + Public scandal
151
+ 521, Ecstatic priest + Ghost field insight + Assassin's contract
152
+ 522, Ecstatic priest + Ghost field insight + Dying curse
153
+ 523, Ecstatic priest + Ghost field insight + Rival crew
154
+ 524, Ecstatic priest + Ghost field insight + Unexpected heir
155
+ 525, Ecstatic priest + Ghost field insight + Spirit Wardens aware
156
+ 526, Ecstatic priest + Ghost field insight + Public scandal
157
+ 531, Ecstatic priest + Blood price + Assassin's contract
158
+ 532, Ecstatic priest + Blood price + Dying curse
159
+ 533, Ecstatic priest + Blood price + Rival crew
160
+ 534, Ecstatic priest + Blood price + Unexpected heir
161
+ 535, Ecstatic priest + Blood price + Spirit Wardens aware
162
+ 536, Ecstatic priest + Blood price + Public scandal
163
+ 541, Ecstatic priest + Strange mutation + Assassin's contract
164
+ 542, Ecstatic priest + Strange mutation + Dying curse
165
+ 543, Ecstatic priest + Strange mutation + Rival crew
166
+ 544, Ecstatic priest + Strange mutation + Unexpected heir
167
+ 545, Ecstatic priest + Strange mutation + Spirit Wardens aware
168
+ 546, Ecstatic priest + Strange mutation + Public scandal
169
+ 551, Ecstatic priest + Abandoned manor + Assassin's contract
170
+ 552, Ecstatic priest + Abandoned manor + Dying curse
171
+ 553, Ecstatic priest + Abandoned manor + Rival crew
172
+ 554, Ecstatic priest + Abandoned manor + Unexpected heir
173
+ 555, Ecstatic priest + Abandoned manor + Spirit Wardens aware
174
+ 556, Ecstatic priest + Abandoned manor + Public scandal
175
+ 561, Ecstatic priest + Forbidden love + Assassin's contract
176
+ 562, Ecstatic priest + Forbidden love + Dying curse
177
+ 563, Ecstatic priest + Forbidden love + Rival crew
178
+ 564, Ecstatic priest + Forbidden love + Unexpected heir
179
+ 565, Ecstatic priest + Forbidden love + Spirit Wardens aware
180
+ 566, Ecstatic priest + Forbidden love + Public scandal
181
+ 611, Leviathan hunter + Ancient artifact + Assassin's contract
182
+ 612, Leviathan hunter + Ancient artifact + Dying curse
183
+ 613, Leviathan hunter + Ancient artifact + Rival crew
184
+ 614, Leviathan hunter + Ancient artifact + Unexpected heir
185
+ 615, Leviathan hunter + Ancient artifact + Spirit Wardens aware
186
+ 616, Leviathan hunter + Ancient artifact + Public scandal
187
+ 621, Leviathan hunter + Ghost field insight + Assassin's contract
188
+ 622, Leviathan hunter + Ghost field insight + Dying curse
189
+ 623, Leviathan hunter + Ghost field insight + Rival crew
190
+ 624, Leviathan hunter + Ghost field insight + Unexpected heir
191
+ 625, Leviathan hunter + Ghost field insight + Spirit Wardens aware
192
+ 626, Leviathan hunter + Ghost field insight + Public scandal
193
+ 631, Leviathan hunter + Blood price + Assassin's contract
194
+ 632, Leviathan hunter + Blood price + Dying curse
195
+ 633, Leviathan hunter + Blood price + Rival crew
196
+ 634, Leviathan hunter + Blood price + Unexpected heir
197
+ 635, Leviathan hunter + Blood price + Spirit Wardens aware
198
+ 636, Leviathan hunter + Blood price + Public scandal
199
+ 641, Leviathan hunter + Strange mutation + Assassin's contract
200
+ 642, Leviathan hunter + Strange mutation + Dying curse
201
+ 643, Leviathan hunter + Strange mutation + Rival crew
202
+ 644, Leviathan hunter + Strange mutation + Unexpected heir
203
+ 645, Leviathan hunter + Strange mutation + Spirit Wardens aware
204
+ 646, Leviathan hunter + Strange mutation + Public scandal
205
+ 651, Leviathan hunter + Abandoned manor + Assassin's contract
206
+ 652, Leviathan hunter + Abandoned manor + Dying curse
207
+ 653, Leviathan hunter + Abandoned manor + Rival crew
208
+ 654, Leviathan hunter + Abandoned manor + Unexpected heir
209
+ 655, Leviathan hunter + Abandoned manor + Spirit Wardens aware
210
+ 656, Leviathan hunter + Abandoned manor + Public scandal
211
+ 661, Leviathan hunter + Forbidden love + Assassin's contract
212
+ 662, Leviathan hunter + Forbidden love + Dying curse
213
+ 663, Leviathan hunter + Forbidden love + Rival crew
214
+ 664, Leviathan hunter + Forbidden love + Unexpected heir
215
+ 665, Leviathan hunter + Forbidden love + Spirit Wardens aware
216
+ 666, Leviathan hunter + Forbidden love + Public scandal
data/seasons.csv ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ 11, Brightsky (New Year) + Imperial fireworks displays + Strange echoes - Ghostly after-images
2
+ 12, Brightsky (New Year) + Ghost field disturbances + Strange echoes - Past conversations replay
3
+ 13, Brightsky (New Year) + New Year masquerades + Strange echoes - Objects flicker between times
4
+ 14, Brightsky (New Year) + Ancestor worship rituals + Strange echoes - Mass déjà vu incidents
5
+ 15, Brightsky (New Year) + Flame lily blooming + Spirit agitation - Local ghosts more active
6
+ 16, Brightsky (New Year) + Spirit Warden ceremonies + Spirit agitation - Spirits drawn to area
7
+ 21, Emberspring (Warming) + Leviathan hunting fleets return + Spirit agitation - Erratic deathseeker crows
8
+ 22, Emberspring (Warming) + Canal thaw celebrations + Spirit agitation - Rattling spirit bottles
9
+ 23, Emberspring (Warming) + Merchant guild festivals + Haunting intensifies - Peaceful ghosts turn violent
10
+ 24, Emberspring (Warming) + Dagger Isles trade ships + Haunting intensifies - Multiple possession attempts
11
+ 25, Emberspring (Warming) + Underground markets boom + Haunting intensifies - Physical manifestations
12
+ 26, Emberspring (Warming) + Street performance season + Haunting intensifies - Ghost-touched visions
13
+ 31, Crucible (Height of Dark) + Unity War memorials + Hull malfunctions - Independent clockwork behavior
14
+ 32, Crucible (Height of Dark) + Skovlander remembrance + Hull malfunctions - Unstable spirit essences
15
+ 33, Crucible (Height of Dark) + Refugee influx + Hull malfunctions - Unusual Sparkwright readings
16
+ 34, Crucible (Height of Dark) + Worker's protests + Hull malfunctions - Mechanical autonomy
17
+ 35, Crucible (Height of Dark) + Factory production peaks + Electroplasm surges - Lightning barriers flicker
18
+ 36, Crucible (Height of Dark) + Rail line expansions + Electroplasm surges - Street lights pulse
19
+ 41, Tribute (Storm Season) + Ancient tower offerings + Electroplasm surges - Unstable leviathan blood
20
+ 42, Tribute (Storm Season) + Lightning barrier stress + Electroplasm surges - Overcharging devices
21
+ 43, Tribute (Storm Season) + Ghost storm sheltering + Barrier interference - Defense weak spots
22
+ 44, Tribute (Storm Season) + Foundation Day feasts + Barrier interference - Strange ghost field lights
23
+ 45, Tribute (Storm Season) + Blood tithe collections + Barrier interference - Deathlands miasma seepage
24
+ 46, Tribute (Storm Season) + Noble house politics + Barrier interference - Conflicting Warden readings
25
+ 51, Bastion (Dimming) + Severosi ghost hunts + Barrier interference - Defense weak spots
26
+ 52, Bastion (Dimming) + Fortification rituals + Barrier interference - Strange ghost field lights
27
+ 53, Bastion (Dimming) + Harbor ice forming + Barrier interference - Deathlands miasma seepage
28
+ 54, Bastion (Dimming) + Winter court intrigues + Barrier interference - Conflicting Warden readings
29
+ 55, Bastion (Dimming) + Scarcity tensions + Electroplasm surges - Lightning barriers flicker
30
+ 56, Bastion (Dimming) + Death-lands migrations + Electroplasm surges - Street lights pulse
31
+ 61, Starfall (Darkest Time) + Iruvian resistance moves + Hull malfunctions - Independent clockwork behavior
32
+ 62, Starfall (Darkest Time) + Forgotten god whispers + Hull malfunctions - Unstable spirit essences
33
+ 63, Starfall (Darkest Time) + Longest night fears + Hull malfunctions - Unusual Sparkwright readings
34
+ 64, Starfall (Darkest Time) + Warehouse shortages + Hull malfunctions - Mechanical autonomy
35
+ 65, Starfall (Darkest Time) + Desperate measures + Haunting intensifies - Peaceful ghosts turn violent
36
+ 66, Starfall (Darkest Time) + Strange lights sighted + Haunting intensifies - Multiple possession attempts
data/setting.md ADDED
@@ -0,0 +1,662 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Setting Primer
2
+
3
+ ## Overview
4
+
5
+ The Past:
6
+
7
+ The World As It Was
8
+ Thousands of years ago, before the shattering of the Isles, the world was bright and gleaming - magic and wonders walked hand in hand beneath the light of a golden sun. Then, about a thousand years ago, the Cataclysm broke the world.
9
+
10
+ The Present:
11
+
12
+ The Material World
13
+
14
+ The sun has been splintered; its embers gleam weakly in the sky at dusk and dawn. At all other times, darkness reigns.
15
+
16
+ The moon still exists, looming by the year ever closer. It occasionally refracts and creates dimmer sisters, projections as though the lunar body is being seen through some fractured, crystalline surface.
17
+
18
+ The stars remain but whirl strangely in the sky.
19
+
20
+ The The Void Sea that separates the Shattered Isles is no longer water but something else, an inky liquid in which star like points of light can be seen dancing.
21
+
22
+ The Immaterial World
23
+
24
+ The power of true sorcery has faded since the Cataclysm. Nobody knows why.
25
+
26
+ Since the Cataclysm the world has been suffused with what people call the ghost field - an omnipresent fuzz of spectral energy. It is always just at the corner of the mind’s eye.
27
+
28
+ The Residents
29
+
30
+ Humans are all that remain of the multitude of races from before the Cataclysm.
31
+
32
+ Demons - immortal, soulless embodiments of primal forces and dark desires, walk the earth. Some taking human form and speech.
33
+
34
+ Leviathans are thought to be the greatest of Demons. Massive creatures that live in the The Void Sea, their blood is the fuel mankind burns to keep the darkness at bay.
35
+
36
+ Forgotten Gods influence and manifest the world. Their priorities and values are not those of mortals, YOU HAVE BEEN WARNED.
37
+
38
+ Living beings are connected to the ghost field in ways not well-understood; with the Gates of Death broken in the Cataclysm, souls linger and leave an imprint on the ghost field.
39
+
40
+ A Ghost results from a death but typically takes up to three days to form. Commonly, Ghosts are vengeful and hunger for the warmth of the living.
41
+
42
+ The Ghost may be hunted and destroyed by the Spirit Wardens or captured and used in unearthly ways.
43
+
44
+ The Shattered Isles
45
+
46
+ Akoros: The seat of the Immortal Emperor who has reigned for a millenia. (Primary ethnicity: Similar to West European)
47
+
48
+ Dagger Isles: Corsairs and merchants, wild and exotic. (Primary ethnicity: Similar to Pacific Islander)
49
+
50
+ Iruvia: A land of desert kingdoms and open dealings with Demons. (Primary ethnicities: Similar to African and Middle East)
51
+
52
+ Severos: Plains and nomadic Ghost-hunting horsemen. (Primary ethnicity: Similar to Asian)
53
+
54
+ Skovlan: Home to an oppressed folk, subjugated by the Empire only recently. (Primary ethnicity: Similar to Northern European)
55
+
56
+ Tycheros: Semi-mythical, far away across the The Void Sea. Tycherosi are rumored to have Demon blood in their veins.
57
+
58
+ Mankind uses processed leviathan blood - Electroplasm - as an energy source. Notable also is that Ghosts are made up of semi-solid electroplasmic vapor.
59
+
60
+ The majority of the isles are covered in The Deathlands - seared wastelands inhabited by wrathful Ghosts and the occasional strange beast. Though it is possible to live here, it is dangerous.
61
+
62
+ The City
63
+
64
+ Doskvol sits on the northern tip of Akoros. Doskvol is the home port to gargantuan Leviathan Hunters. Leviathan hunting ships prowl the northern Void Sea, returning with precious Electroplasm. From Doskvol, Electroplasm is shipped by lightning rail to the entire empire.
65
+
66
+ The city is protected from the The Deathlands by giant Lightning Barrier, powered by Electroplasm.
67
+
68
+ Unable to expand, the city has grown up rather than out. There is little free space here as the city is centuries old.
69
+
70
+ The city is also home to a large number of factions, all interested in either protecting what they have, taking what belongs to others, or some combination of the two.
71
+
72
+ That’s where you come in: at the bottom, hungry for more. Time to carve out your own turf.
73
+
74
+ Doskvol
75
+ THE DARK JEWEL OF AKOROS
76
+ The city of Doskvol was established over 1000 years ago as a coal mining settlement on the cold north coast of Akoros. It has withstood the breaking of the world, an attack by a titanic leviathan, massive fires, a plague, a civil war, and legions of angry ghosts. It is a community of survivors.
77
+
78
+ The city is densely packed inside the ring of immense Lightning Tower that protect it from the murderous ghosts of the blighted deathlands beyond. Every square foot is covered in human construction of some kind—piled one atop another with looming towers, sprawling manors, and stacked row houses; dissected by canals and narrow twisting alleys; connected by a spiderweb of roads, bridges, and elevated walkways.
79
+
80
+ Doskvol is one of the most important cities in the Imperium, since it is from its port that the metal steamships of the Leviathan Hunters are launched. The hunters brave the far northern reaches of the The Void Sea, far out of sight of land, to grapple with titanic demons of the depths and extract their precious immortal blood���the substance refined into Electroplasm, the power source of civilization.
81
+
82
+ All powerful noble families operate hunter ships, each commanded by the scion of their line—and it is by their fortunes at sea and the bounties of blood they capture that the fortunes of the empire wax and wane. The savvy and the ruthless of Doskvol do well to position themselves to profit from this crucial enterprise upon which so many depend—either as an ally or servant of the aristocracy, or by preying upon the corrupted rich and privileged elite.
83
+
84
+ ## Zooming out: The Shattered Isles
85
+ AKOROS
86
+ A land of dark, petrified forests and rocky hills. The rich coastal cities get their wealth from leviathan hunting and from mining colonies deep inland. The Akorosi are sometimes called “Imperials” since the Imperium began there. They are generally fair-skinned and dark-haired.
87
+
88
+ THE DAGGER ISLES
89
+ A tropical archipelago covered in dense jungle growth; now turned dark and twisted from the strange magic of the cataclysm. Some say that the people there live without lightning barriers. How do they manage that? Native islanders are generally copper-skinned and dark-haired.
90
+
91
+ IRUVIA
92
+ A land of black deserts, obsidian mountains, and raging volcanoes. Some say that positions of power are openly held by demons in Iruvia. The people are generally amber-skinned and dark-haired.
93
+
94
+
95
+ SEVEROS
96
+ A land of windswept plains, covered in dark scrub and thorny growths. Outside the Imperial cities on the coast, some native Serverosi still live in free tribes, scavenging the death-lands on their ghost-hunting horses. They are generally brown-skinned and dark-haired.
97
+
98
+
99
+ SKOVLAN
100
+ A ragged land of cold mountains and rough tundra. Skovlan was the last holdout against Imperial control. They are generally pale-skinned and fair-haired or red-haired.
101
+
102
+
103
+ TYCHEROS
104
+ A far off land, disconnected from the Empire. People say the Tycherosi (rudely called “Strangers”) have demon blood in their lineage.
105
+
106
+ ## Districts
107
+ Barrowcleft
108
+ Barrowcleft is the home to the laborers and overseers of the Ministry of Preservation who attend
109
+ the radiant energy farms of Doskvol. It is a dusty, rural district, with simple wooden buildings of
110
+ only one or two stories and wide dirt roads to accommodate large cargo wagons. The farmers of
111
+ Barrowcleft are organized into tight-knit family-based clans that are proud of their vital role in the
112
+ city’s welfare and hold themselves apart from the “city folk” across the river. Outsiders are
113
+ welcome here for honest trade, but are met with a cold suspicion otherwise.
114
+ Scene:
115
+ Farmers trudging to and from work. Tradespeople crafting simple goods. Merchants selling their
116
+ wares. Heavy-laden cargo wagons transporting food into the city. Vigilant deputies surveying the
117
+ fields from their watchtowers.
118
+ Streets:
119
+ Smooth dirt roads, drainage ditches.
120
+ Buildings:
121
+ Low, wide wooden structures. Barns. Animal pens. Stone mills. Hilltop manors for the
122
+ Overseers. Crowded apartments, towers, and market stalls along Barrow Bridge.
123
+ Landmarks:
124
+ 1 Barrow Bridge. One of several residential bridges in the city. The bridge is lined with homes,
125
+ shops, and merchant stalls. Families of river-fishers work from ramshackle wooden huts along
126
+ the banks on either side. They hunt the large and dangerous wild river eels that gather to feed
127
+ on refuse near the channel to the sea.
128
+ 2 Lightning Tower. The lightning towers of Doskvol are marvels of electroplasmic engineering,
129
+ requiring constant attention from the powerful Sparkwrights guild. The largest towers are over
130
+ 200 feet tall and include their own internal generators to provide power to the lightning barrier
131
+ that keeps the ravenous spirits of the deathlands out of the city3 Barrowcleft Market. This
132
+ open-air marketplace provides a place for the radiant energy farms to sell fresh produce and
133
+ goods made from their crops. Other related vendors have also sprung up here, including
134
+ brewers and distillers, weavers, dyers, and goat breeders. The tough and close-knit people of
135
+ Barrowcleft have managed to keep criminal influence out of their market and it’s famous as a
136
+ rare place for fair trade in the city.
137
+ 4 Radiant Energy Farm. The wondrous power of radiant energy allows crops to grow in the
138
+ darkness of Duskwall. Life in the city depends upon these farms, so their delicate radiant plants
139
+ and irrigation systems are watched constantly by specially appointed deputies of the Watch.
140
+ Effect
141
+
142
+ Barrowcleft market is one of the best marketplaces in the city, but criminal types draw lots of
143
+ unwanted attention. You can take +1d to acquire an asset here, but also accrue +2 heat.
144
+ Notables
145
+ Chief Prichard. The Head Overseer of Labor for the Ministry of Preservation in Duskwall.
146
+ Manages the workers and food allotments for the city districts.
147
+ Hester Vale. Matriarch of the oldest farm family. The living embodiment of “tough but fair.”
148
+ Mara Keel. A former smuggler who’s gone into hiding among the farm laborers of Barrowcleft.
149
+
150
+ Brightstone
151
+ Brightstone is home to many of the wealthiest and most influential citizens of Doskvol. Its streets
152
+ are broad and paved, under bright electric lights; its canals are sparkling and clean, with
153
+ perfumed water; its houses are all of fine, pale marble blocks, rich timbers, and intricate
154
+ ironworks. There are cultivated parks fed by radiant energy; lavish restaurants and cafes;
155
+ jewelers, tailors, and other luxury shops. Street-side vendors are forbidden here, resulting in a
156
+ serene, spacious atmosphere, punctuated by the occasional carriage or marching Bluecoat
157
+ patro.
158
+ Scene:
159
+ Elite Bluecoat patrols, arrayed in fine armor and gleaming gun-pikes. Wealthy citizens strolling
160
+ through manicured parks, attended by servants. Horse-drawn coaches and the occasional
161
+ electroplasmic carriage rumbling along the avenues.
162
+ Streets:
163
+ Broad, clean, well-lit.
164
+ Buildings:
165
+ Pale stone mansions with lightning barriers, grand manor houses, lavish townhouses, opulent
166
+ theaters and restaurants, luxury shops.
167
+ Landmarks:
168
+ 1 Unity Park. A grand park, fountain, and roundabout featuring an enormous monument
169
+ commemorating Imperial victory in the Unity War (or the War for Skovlan Independence,
170
+ depending on who you talk to).
171
+ 2 Silver Market. A curated open-air emporium overlooking the North Hook channel. Named for
172
+ its original use as the primary marketplace for silver traders, it’s now host to luxury goods
173
+ vendors of all sorts, including rare Iruvian silks, spices from the Dagger Isles, horse-traders,
174
+ carriage upholsterers, and rare alchemical distillations (including some illegal spirit
175
+
176
+ essences—to which the City Watch turns a blind eye).3 The Sanctorium. The chief cathedral
177
+ dedicated to the Church of the Ecstasy of the Flesh. It’s a towering edifice of buttresses and
178
+ spires, originally commissioned by the Emperor during his last visit to Doskvol nearly 500 years
179
+ ago. Devotees gather weekly to purify themselves in baptismal rites and through the ritual
180
+ destruction of rogue spirits in electroplasm. The catacombs beneath contain the cremated ash
181
+ of many famous and affluent citizens.
182
+ 4 Bowmore Bridge. This massive structure of bright white stone and shimmering metal-work is
183
+ said to be the largest bridge in the Imperium. Luxury apartments and shops perch all along its
184
+ length from Brightstone to Whitecrown
185
+ Effect
186
+ Most engagement rolls suffer -1d due to heavy Bluecoat patrols. Operations against the nobility
187
+ in Brightstone are considered on “hostile turf ” for the purpose of generating heat.
188
+ Notables
189
+ Lord Strangford. Operates one of the largest leviathan hunter fleets and serves on the City
190
+ Council.
191
+ Commander Bowmore. Chief Officer of the Watch in Brightstone. Bowmore’s family financed
192
+ Bowmore Bridge centuries ago and now holds many positions of power.
193
+ Rolan Wott. An influential magistrate who handles property, endowments, and financial cases.
194
+ Famous for his extravagant parties.
195
+
196
+ Charhollow
197
+ This crowded district is home to the bulk of the workforce of the city—servants, dockers, sailors,
198
+ stockyard and eelery workers, cabbies, and so on. It’s cheap, noisy, cramped, and sweltering
199
+ from cookfires and hissing steam-pipes, but there’s a familial camaraderie among its residents
200
+ that you won’t find anywhere else. The people of Charhollow are a true community, brought
201
+ together by circumstance, but bound by ties of mutual support and care in stark contrast to the
202
+ cutthroat ruthlessness that constitutes business as usual in the rest of the city.
203
+ Scene:
204
+ Laborers returning from work shout greetings to friends and families. Groups of people cook and
205
+ eat together at communal cook-fires. Children run wild, playing at hunt-and-peek and
206
+ catch-the-ghost.
207
+ Streets:
208
+ Steep inclines cut with crude stone stairs, twisting alleyways, dirt and cobblestones.
209
+
210
+ Buildings:
211
+ Stacked one- or two-room homes, cheap tenements, ramshackle apartments, well-worn taverns
212
+ and public houses.
213
+ Landmarks:
214
+ 1 The Sheets. Washers, tailors, and seamstresses congregate in this neighborhood, filling the
215
+ alleyways between the buildings with the billowing fabrics of their trade. A secret association of
216
+ anarchists among the working class meets here to plot their schemes for revolution.
217
+ 2 Strangford House. The grand, fenced estate of the powerful Strangford family perches on the
218
+ hill of a private island overlooking Charhollow. Many who live in the district toil in Strangford’s
219
+ factories and workhouses, and few miss the chance to throw the evil eye in their direction when
220
+ they catch glimpse of their house on the hill.3 Charhollow Market. A public market fills the open
221
+ square here, offering fair prices and decent goods to the local community.
222
+ 4 Kellen’s. One of the oldest pubs in the city, with a dizzying selection of Skovlander ales and
223
+ whiskeys. Rich and poor alike rub elbows here to enjoy the traditional food and music with their
224
+ drinks, though recently, the pub has become the target of masked anti-Skovlander bigots,
225
+ who’ve vandalized the property and assaulted some patrons, shouting “No Skovs!” and “Skovs
226
+ go home!”
227
+ Effect
228
+ Operations against the citizenry in Charhollow are considered on “hostile turf ” for the purpose
229
+ of generating heat.
230
+ Notables
231
+ Briggs. The owner of a merchant stall at Charhollow market, cover for a network of gossips,
232
+ spies, and code-smiths among the working class people of the district, selling their services to
233
+ those who need them.
234
+ Corben. An ex-military Skovlander on the lam for crimes against the empire.
235
+
236
+ Charterhall
237
+ Charterhall is the site of the first major construction in the city, in the days before the cataclysm.
238
+ The old wall upon which was built the first lightning barrier in the Empire still stands in partial
239
+ ruin around the district. The area is now home to the civic offices of the government including
240
+ the courts, licensing and taxation offices, banks, and records archives. City officials and
241
+ students at Charterhall University live here, along with the captains of Imperial industry who
242
+ prefer to reside within sight of their fortunes.
243
+ Scene:
244
+
245
+ Clerks and government workers rush to and fro, official papers bulging from their valises.
246
+ Wealthy bankers trundle past in heavy carriages with private bodyguards arrayed in clanking
247
+ armor. Students gather at street-corner cafes to discuss Iruvian politics, the tribal lineages of the
248
+ Dagger Isles, and other esoteric matters.
249
+ Streets:
250
+ Broad, clean, well-lit.
251
+ Buildings:
252
+ Imposing stone buildings with officious columns and classical sculptural motifs. .
253
+ Landmarks:
254
+ 1 Charter Wall. Along the ruins of the old walls are a sprawl of artist colonies. Bohemian lovers
255
+ of music and sculpture, these students are typically patronized by a single individual or family
256
+ who expect their charges to master their craft and make art for their edification.
257
+ 2 Bellweather Crematorium. The site of the spirit bells and the rookery for the deathseeker
258
+ crows. Bodies recovered by the Spirit Wardens are incinerated in electroplasm here to destroy
259
+ their ghosts.
260
+ 3 Clerk Street. The main avenue of the district is lined with imposing governmental structures of
261
+ all sorts, tucked behind iron fences, patrolled by a mix of Bluecoats on the sidewalks and
262
+ mounted Imperial cavalry on the grounds.4 Jayan Park. The great alchemist for whom this park
263
+ is named contrived to formulate soil and seeds that could produce real, growing trees, without
264
+ sunlight or radiant energy. They are horrifically toxic to all living things and must not be touched,
265
+ but they still grow beautifully here, over 100 years later.
266
+ 5 Charterhall University. A dozen buildings have been converted into classrooms and
267
+ dormitories for the students of this modest-seeming but nevertheless prestigious institution. The
268
+ school’s massive Sparkwright Tower, where experts of spark-craft are trained, looms huge over
269
+ the district, often belching fire and smoke from the more vigorous lessons.
270
+ Effect
271
+ The records in Charterhall can be of particular interest to criminal sorts. Take a Devil’s Bargain
272
+ for +1dto gather info here in exchange for 1 heat (the Bluecoats are always watching for
273
+ scoundrels like you).
274
+ Notables
275
+ Lady Drake. A magistrate who is “reasonable” when it comes to street crime, so long as the
276
+ offender’s purse is sufficient.
277
+
278
+ Lord Penderyn. Chief Scholar of the Archive of Echoes, authorized by the Emperor to keep a
279
+ collection of ancient ghosts trapped in spirit bottles, to be consulted in cases where knowledge
280
+ from the distant past would benefit the operation of the Imperial government.
281
+
282
+ Coalridge
283
+ Coalridge is home to most of the machinists, industrial laborers, and factories of the city. It’s
284
+ cramped, soot-choked, and loud—spewing dense clouds of black smoke, showers of sparks,
285
+ and burning cinders. The old elevated train lines that once hauled coal now carry heavy
286
+ equipment and raw materials to and from Gaddoc Station, though many of the ancient tracks
287
+ and cars have been abandoned to squatters who’ve converted them into makeshift homes.
288
+ Scene:
289
+ Soot-covered workers hacking up black bile as they trudge home from the factories. Heavy rail
290
+ cargo being unloaded by crane. Street-tough waifs running wild. A factory boss lashing a worker
291
+ for an infraction. Squatters cooking a meal in the coal engine of an abandoned train car.
292
+ Streets:
293
+ Multi-level, crowded with crates and discarded junk. Elevated rail lines.
294
+ Buildings:
295
+ Tall and narrow brick row houses with belching chimneys, metal-clad factories and warehouses,
296
+ train cars converted into dwellings.
297
+ Landmarks:
298
+ 1 Coalridge Mine. The site of the first permanent settlement at the river delta, the mine was
299
+ originally built by the ancient Skov kingdom, who called it Doskovol—literally, “The Skov’s Coal.”
300
+ The mine still operates over 1,000 years later, though demand for coal has dropped sharply as
301
+ the Imperium adopts electroplasmic power more and more widely.
302
+ 2 The Old Rail Yard. Before Gaddoc Station was built, this industrial rail yard was a center for
303
+ commerce in the city. The Old Yard now serves only a couple heavy cargo trains daily, with
304
+ many of its old rail cars rusted in place where they were abandoned.3 The Ironworks. The
305
+ Ironworks is a sprawling collection of massive industrial workhouses. Cruel foremen drive
306
+ indentured laborers around the clock to keep up with the massive production demands to
307
+ replace and refit leviathan hunter ships as well as the need for goods transported out to the
308
+ Imperium at large.
309
+ 4 Brickston. The most densely packed residential area in Duskwall. Brickston is a cramped
310
+ jumble of multi-story brick row houses, stacked one atop the other. Many of the toughest
311
+ scoundrels of the underworld hail from here, learning the harsh lessons of survival and gang life
312
+ within its dark maze.
313
+
314
+ Effect
315
+ Because the factories of Coalridge operate around the clock, there’s no ideal time for
316
+ clandestine crime here, but foremen are happy to be bribed to “take a break” or look the other
317
+ way.
318
+ Notables
319
+ Master Slane. A notorious factory foreman known for excessive and cruel punishment. Many
320
+ attempts have been made on his life, but all have failed. Some say he’s a devil.
321
+ Belle Brogan. A Skovlander factory worker gaining popularity as a union organizer. It’s only a
322
+ matter of time before a factory boss tries to make an example of her.
323
+ Hopper. A drug addict, Whisper, and all-around weirdo who perches on rooftops in the district.
324
+ Hopper claims to see “spirit train tracks” stretching beyond the horizon.
325
+
326
+ Crow's Foot
327
+ Crow’s Foot is a crossroads, merging many qualities of its neighboring districts: the illict vices of
328
+ Silkshore, the labor and trade of the Docks, the poverty of Charhollow, and the classic
329
+ architecture of Charterhall. The district is a patchwork, both held together and threatened to be
330
+ torn apart by the menagerie of competing street gangs and Bluecoat squads that claim every
331
+ avenue and corner as territory in an endless turf war.
332
+ Scene:
333
+ Dockers filing to and from work. Minks plying their trade on the corners. A squad of Bluecoats
334
+ shaking down a shopkeep for a bribe. Rival gangs calling challenges to each other across the
335
+ rooftops. A fine coach carrying a noble seeking illicit wares.
336
+ Streets:
337
+ Multi-level, cramped, dark, foggy.
338
+ Buildings:
339
+ Flophouses, inns, old manors chopped into apartments, traditional stone houses. Smiths,
340
+ taverns, brothels, and butchers.
341
+ Landmarks:
342
+ 1 Crow’s Nest. An ancient tower from before the cataclysm that has been a ritual sanctum, an
343
+ astronomer’s laboratory, and a Bluecoat watch post—before its current role as the headquarters
344
+ of the district’s chief gang, the Crows.
345
+
346
+ 2 Tangletown. Hundreds of years ago, one of the massive leviathan hunter ships was partially
347
+ sunk in the river. Since then, it’s collected an attendant flotilla of tiny watercraft, all lashed
348
+ together into a floating neighborhood. Tangletown is considered neutral ground among the
349
+ street gangs of Crow’s Foot, and no violence is allowed there3 Strathmill House. The lost
350
+ children and unwanted orphans of Crow’s Foot inevitably pass through the halls of Strathmill
351
+ House. Some are cared for and trained for jobs at the docks or the workhouses of Coalridge.
352
+ Others are quietly instructed in the arts of the lookouts and runners used by the gangs of the
353
+ district—all for a small fee to Strathmill House, of course.
354
+ 4 Red Sash Sword Academy. This large mansion has been converted into a training school for
355
+ the Falling Star style of Iruvian sword play. The Red Sashes, an Iruvian gang who run several
356
+ luxury drug dens in the district, claim it as their HQ and cover operation for their illicit operations.
357
+ Effect
358
+ Years of murder have made this the most haunted district. Angry ghosts crave bloodshed here.
359
+ You may take a Devli's Bargain for +1d for violent action, but the ghost will lash out too.
360
+ Notables
361
+ Sergeant Lochlan. The senior Bluecoat squad leader in the district, reporting to Captain Dunvil.
362
+ Mardin Gull. Owner and operator of the Leaky Bucket public house. Mardin was the leader of
363
+ the Crows many years ago and now enjoys a comfortable retirement out of the scoundrel life.
364
+
365
+ Dunslough
366
+ Dunslough is a ghetto for the destitute poor of the city, as well as the site of Ironhook Prison and
367
+ its labor camp. Originally, the ghetto was a neighborhood for families of prisoners, but over the
368
+ years, extreme poverty and neglect have worn it down into asodden ruin. A vicious cycle plays
369
+ out here: crime driven by desperation, then arrest, incarceration, and release back to
370
+ Dunslough—giving Ironhook an endless supply of laborers to exploit.
371
+ Scene:
372
+ Mud-covered laborers returning from the Mire. Destitute families scrounging for scraps along the
373
+ roadway to the Barrowcleft farms. Bored Ironhook guards, rifles slung on their backs, watching a
374
+ taskmaster lash a labor camp prisoner.
375
+ Streets:
376
+ Cramped, multi-level—some of stone but many of dirt, sodden into thick black mud. No street
377
+ names to be found.
378
+
379
+ Buildings:
380
+ Decrepit wooden row houses, many abandoned from fire damage or fallen-in from age. Stone
381
+ silos, clanking steam machinery, and metal sheds for dredging equipment.s.
382
+ Landmarks:
383
+ 1 Ironhook Prison. A towering metal fortress, where the worst (or most unlucky) criminals are
384
+ incarcerated. The poorest are forced to work at Dunvil Labor Camp. The most well-connected
385
+ prisoners manage a comfortable stay, and may even continue to run their criminal enterprises
386
+ from behind bars.
387
+ 2 Dunvil Labor Camp. Poor prisoners who can’t afford to bribe the staff at Ironhook spend most
388
+ of their days toiling at Dunvil Labor Camp, loading precious ores onto barges for the rail station
389
+ and breaking the larger rocks hauled from the Mire.3 Dunslough Ghetto. The most destitute of
390
+ the city end up in Dunslough, working the Mire for a pittance just to buy their daily bread. The
391
+ city counts the space as “runoff ” for the prison grounds, and does nothing to maintain it.
392
+ 4 The Mire. A massive mud-quarry pit, the Mire is the site of the impact of an ancient celestial
393
+ body, which left behind a variety of precious ores and jewels embedded in the earth.
394
+ Effect
395
+ None??
396
+ Notables
397
+ Master Krocket. An unsavory, greasy-haired, scarecrow of a man who runs the snarling pack of
398
+ vicious dogs used by Ironhook to track down escapees and sniff out contraband and tunnels.
399
+ His dog-handlers can be found around the labor camp and all about Dunslough, using their
400
+ status with the prison for favors and bribes.
401
+ Vandra. A deathlands scavenger that survived six runs and was pardoned. She knows the
402
+ landscape beyond the barrier very well—but few can make sense of her haunted mumblings.
403
+
404
+ Nightmarket
405
+ Nightmarket is a district dominated by commerce. Situated near Gaddoc Rail Station,
406
+ Nightmarket receives the bulk of salable goods from the cargo trains that travel across the
407
+ Imperium, bringing the exotic and rare to Duskwall. The citizens that call Nightmarket home
408
+ constitute a new class of “elites”—wealthy people who are not of noble descent but
409
+ nevertheless claim land, status, and power without titles. The district has been taken over by
410
+ new construction, introducing lavish private townhouses with all of the modern advances for the
411
+ elites that can afford them.
412
+
413
+ Scene:
414
+ Electric lights in a riot of colors advertise the market stalls of the vendors. Several devout
415
+ acolytes bow in silent prayer at the statues of the Night Queen, the district’s adopted forgotten
416
+ god. The city’s elite, hidden behind masks, slip into the underground to partake of strange
417
+ pleasures in the private clubs
418
+ Streets:
419
+ Multi-level wooden platforms and boardwalks. Landscaped parks of petrified trees from the
420
+ deathlands. High-class subterranean avenues.
421
+ Buildings:
422
+ Wooden market stalls. Underground stone shops and clubs. Newly constructed private
423
+ townhouses for the Nightmarket elites.
424
+ Landmarks:
425
+ 1 The Veil. A luxurious social club known for its confidentiality and permissive policies regarding
426
+ guests of arcane or unusual origins. Rolan Volaris, the proprietor and host, is a Tycherosi with
427
+ an extremely unusual manifestation of his demonic blood: rather than legs, he has the body of a
428
+ serpent from the waist down... or so people say. Volaris is rarely seen in person.
429
+ 2 Dundridge & Sons. Considered by many to be the foremost tailor in Duskwall. The Dundridge
430
+ family has provided the finest clothes and sartorial accoutrements to discerning citizens for over
431
+ 300 years. Despite their legendary reputation, Dundridge’s prices are very reasonable.3 Vreen’s
432
+ Hound Races. The racing of specially bred hounds is currently in vogue among Doskvol’s upper
433
+ crust. A man from the Dagger Isles calling himself “Master Vreen” acquired a small fortune from
434
+ investors to create “the premier hound racing track in the Imperium.”
435
+ 4 The Devil’s Tooth. A tavern known for its “secret” menu of alchemical concoctions.
436
+ Adventurous psychonauts may experiment with all manner of mindaltering (or spirit-altering)
437
+ substances in the relative safety of Mistress Kember’s comfortable establishment.
438
+ Effect
439
+ Nightmarket is the best place to trade illicit and arcane goods in the city, but the darker corners
440
+ are full of strange horrors. You can take +1d to acquire an asset here, at the cost of 2 stress.
441
+ Notables
442
+ Jira. A dealer of fine weapons from the Dagger Isles. Greatly respected by many street toughs
443
+ in the Dusk—a “jira blade” is a status symbol that many aspire to.
444
+
445
+ Leclure. A purveyor of personal luxuries (soaps, hair oils, perfume, fine silks) who dabbles in
446
+ fortune telling. Some say that her drowned lover is a ghost that whispers secrets in her ear.
447
+ Mordis. A strange merchant that hides its appearance beneath many layers of robes and hoods.
448
+ Also fences occult and arcane stolen goods, no questions asked.
449
+
450
+ Six Towers
451
+ This formerly prestigious district has faded over the centuries into a pale shadow of what it once
452
+ was. The eponymous six towers were originally the grand residences of Doskvol’s first noble
453
+ families. All but two (Bowmore House and Rowan House) have been sold off and converted into
454
+ cheap apartments or fallen into ruin and abandoned. The district has an empty, haunted feel,
455
+ with many sprawling old buildings dark without power, broad stone streets cracked and buckled,
456
+ and the fires of squatters crackling from overgrown lots..
457
+ Scene:
458
+ Bits of trash, blown by a cold wind, skitter across empty streets, illuminated only by a few
459
+ still-working street lamps and the campfires of squatters. The shutters and doors of abandoned
460
+ buildings moan, creak, and bang in a haunted chorus. Residents hustle by, heads down,
461
+ clutching spiritbane charms close to their breasts.
462
+ Streets:
463
+ Broad stone avenues, cracked and broken, dark without power; overgrown and neglected.
464
+ Buildings:
465
+ Palatial estates, tumbled into disrepair. Grand manors, remodeled into cramped and cheap
466
+ apartments.
467
+ Landmarks:
468
+ 1 Rowan House. One of the last of the original six towers, this antique building resembles an
469
+ ancient castle from history books, complete with moat, draw-bridge, and arrow-slit windows. The
470
+ powerful Rowan family rules their holdings from within the fortress, rarely venturing beyond the
471
+ security of its thick stone walls.
472
+ 2 Mistshore Park. This dark and overgrown space overlooks the eastern branch of the river
473
+ Dosk and the deathlands beyond. In old folk ballads, young lovers who could not be together
474
+ would commit suicide in this park. Whatever the truth of it, the park is certainly haunted now.3
475
+ Scurlock Manor. The Scurlock family came to Duskwall centuries ago and was once a great
476
+
477
+ force in the city, before some curse or calamity befell their line. This tumble-down manor house
478
+ and tangle of vines is all that remains of their original fortune. It’s said that a young nephew or
479
+ cousin still resides there, but Lord Scurlock himself has moved on to finer abodes.
480
+ 4 Arms of the Weeping Lady. This grand building, formerly an opera house, is now a
481
+ soup-kitchen and bunkhouse for the destitute, run by the charity of the Weeping Lady. Locals
482
+ use this landmark as the demarcation between the districts of Charterhall and Six Towers.
483
+ Effect
484
+ The many empty buildings and abandoned properties make this district a perfect location for a
485
+ hidden scoundrel’s lair.
486
+ Notables
487
+ Mother Narya. Runs the Arms of the Weeping Lady charity house.
488
+ Chef Roselle. One of the best cooks in the city, still operating the legendary Golden Plum
489
+ restaurant—worth the trip into the haunted streets of Six Towers.
490
+ Flint. A spirit trafficker who trades out of a condemned manor house
491
+
492
+ The Docks
493
+ The docks of Doskvol are ancient, going back to the days before the cataclysm, when the area
494
+ was a colony town of the old Skov kingdom. Today, some commerce has shifted to the new
495
+ electro-rail lines of the Imperium, but the docks are still bustling with cargo haulers, fishing
496
+ boats, and the prestigious leviathan hunter ships that provide the raw material that keeps the
497
+ city running.
498
+ Scene:
499
+ Small and medium steamships docked close, dwarfed by the titanic leviathan hunter ships
500
+ further out. Throngs of sailors and dockers, doing their work, singing work-songs. Heavy cargo
501
+ rumbling away on wagons. Shouts and breaking glass from a brawl spilling out of a tavern.
502
+ Streets:
503
+ Raised streets perched over the docks themselves, rigged with cranes and winches.
504
+ Buildings:
505
+ Massive cargo warehouses. Squat taverns, brothels, and tattoo parlors. Crowded overnight
506
+ bunkhouses for sailors.
507
+
508
+ Landmarks:
509
+ 1 The North Hook Company. This grand, old-fashioned estate house is headquarters for the
510
+ oldest surviving shipping and naval exploration enterprise in the Imperium. The North Hook
511
+ Company has a massive fleet of trade ships and is considered by many to be merely a private
512
+ front for the Ministry of Preservation. No one knows for sure, since enemies and rivals of the
513
+ company (not to mention overly curious journalists) tend to disappear.
514
+ 2 Ink Lane. This twisting back-street is home to many of the city’s tattooists as well as several
515
+ newspapers—who all share the cost of their inks in bulk. A fine place for gossip and rumors of
516
+ all kinds.3 Saltford’s. A squat stone building that houses one of the more notorious private
517
+ banks in Duskwall. Being so close to the docks, Saltford’s has faced many gangs of whiskey’d
518
+ sailors that decided to turn to robbery as a new line of work, and defeated them all—sometimes
519
+ even hanging the corpses from their lamp-posts as discouragement to the next pack of drunken
520
+ fools.
521
+ 4 The Menagerie. A fenced-off muddy field, dotted with rusting animal pens, water tanks, and
522
+ gaudy signage. Sailors traditionally drop off any curious creatures they pick up in their travels,
523
+ which Captain Rye, the strange proprietor, incorporates into his makeshift zoological displays.
524
+ Effect
525
+ Operations against ships at port are considered on “hostile turf ” for the purpose of generating
526
+ heat.
527
+ Notables
528
+ Chief Helker. One of the most influential senior Dockers. Helker has a lot of sway at the docks,
529
+ and if you cross him, you might find your cargo tossed into the drink—and possibly you along
530
+ with it.
531
+ Tris. A legendary tattooist who only inks those that have looked upon a leviathan and lived to tell
532
+ the tale. Getting a tattoo from Tris is a rite of passage for everyone who hunts the demons of the
533
+ Void Sea.
534
+
535
+ Whitecrown
536
+ Whitecrown sits atop a grand peak on the island across North Hook channel from the city
537
+ proper. From this lofty height, the Lord Governor’s stronghold oversees all, flanked by the grand
538
+ estates of the most powerful nobility and the extravagantly appointed campus of Doskvol
539
+ Academy. Whitecrown is a rich and rarefied world unto itself—most citizens live out their entire
540
+ lives in the city without ever once crossing the bridge to the glittering spires of wealth and power
541
+ there.
542
+
543
+ Scene:
544
+ Imperial soldiers parade outside the stronghold, astride their armored steeds, gleaming lances
545
+ held high. Trainee crews run drills on a leviathan hunter ship docked for refitting. The lavish
546
+ carriages and electroplasmic coaches of the fabulously wealthy glide by, carrying their privileged
547
+ passengers to luxurious destinations.
548
+ Streets:
549
+ Broad, polished stone, brightly lit to near daylight by a riot of warm electric lights.
550
+ Buildings:
551
+ Grand, elegant facades; landscaped terraces, balconies, and elevated walkways connecting
552
+ bright marble buildings with inlaid platinum and gold details.
553
+ Landmarks:
554
+ 1 Lord Governor’s Stronghold. The Emperor originally commissioned this stronghold as a
555
+ garrison for the Imperial Military stationed at North Hook prior to the invasion of Skovlan. It now
556
+ houses the Lord Governor, their family, and governmental aides as well.
557
+ 2 Doskvol Academy. Hailed as one of the finer institutions of learning in the Empire, the school
558
+ is most well-known as the instructional facility for the leviathan hunter captains and their senior
559
+ officers. Training cruises for new recruits are conducted year-round to replace the poor souls
560
+ lost in the hunts.3 Master Warden’s Estate. This gigantic, fortified manor is home to the
561
+ Commander of the Spirit Wardens and is their primary training facility. It’s said that some spirits
562
+ are not destroyed at Bellweather—but are brought here instead for some unknown purpose.
563
+ 4 North Hook Lighthouse. This ancient structure has been converted into an electro-plasmic
564
+ apparatus capable of providing a navigation beacon for hundreds of miles into the darkness of
565
+ the Void Sea around Duskwall.
566
+ Effect
567
+ Most engagement rolls suffer -2d due to heavy Bluecoat patrols. Operations against the nobility
568
+ in Whitecrown are considered on “hostile turf ” for the purpose of generating heat.
569
+ Notables
570
+ Maestro Helleren. Senior composer and conductor of the Spiregarden Theater, premiere
571
+ performance venue for the elite of the city.
572
+
573
+ Lady Freyla. Regarded by some as the finest sommelier in the Empire. She serves only the
574
+ most deserving at the Emperor’s Cask.
575
+
576
+ ## Factions
577
+
578
+ The Billhooks: Gang of bloody butchers, currently a power struggle. Tier II. The Docks
579
+
580
+ The Brigade: Firefighters who also loot and extort. Tier II. Charterhall
581
+
582
+ Bluecoats: Police, corrupt, many districts, inter-departmental rivalry. Tier III. Charterhall et al
583
+
584
+ Cabbies: Public coaches, goat breeders, gossips. Tier II. Charterhall et al
585
+
586
+ The Church of the Ecstasy of the Flesh: Demon worshipers. Tier IV. Brightstone
587
+
588
+ The Circle of Flame: Artifact hunters searching for the Relics of Kotar. Tier III. Six Towers
589
+
590
+ City Council: Rulers of city government. Tier V. Charterhall
591
+
592
+ Various Consulates: Charterhall
593
+
594
+ The Crows: Controls Crow’s Foot, old gang, power struggle. Tier II. Crow’s Foot
595
+
596
+ Cyphers: The messenger’s guild of the city, sworn to secrecy. Tier II. Charterhall et al
597
+
598
+ Deathlands Scavengers: Ironhook convicts exiled to the deathlands. Tier II. Deathlands
599
+
600
+ The Dimmer Sisters: Bizarre group of occultist sisters. Tier II. Six Towers
601
+
602
+ Dockers: Tough workers associated with Leviathan Hunters. Tier III. The Docks
603
+
604
+ The Fog Hounds: Up and coming smugglers looking for a patron. Tier I. The Docks
605
+
606
+ The Forgotten Gods: Many cults to ancient gods. Tier III collectively, Tier I or II individually.
607
+
608
+ The Foundation: Architects of the city with many secrets. Tier IV. Charterhall
609
+
610
+ Gondoliers: Canal boat operators, occultists, spirit-hunters. Tier III. Charterhall et al
611
+
612
+ The Gray Cloaks: Ex-Bluecoats who got sold out for corruption. Tier III. Six Towers
613
+
614
+ The Grinders: Skov Leviathan processors in Lockport wanting revolution. Tier II. The Docks
615
+
616
+ The Hive: Merchant’s guild also trading contraband. Tier IV. Brightstone, no HQ
617
+
618
+ The Horde: A mass of Hollows being manipulated. Tier III. Dunslough
619
+
620
+ Imperial Military: Military forces stationed in Doskvol. Tier VI. Whitecrown
621
+
622
+ Ink Rakes: Journalists and muckrakers. Tier II. Charterhall
623
+
624
+ Inspectors: Ethical investigators. Tier III. Charterhall
625
+
626
+ Ironhook Prison: The prison. Tier IV. Dunslough
627
+
628
+ The Lampblacks: Gang of former lamp-lighters now defunct. Tier II. Crow’s Foot
629
+
630
+ Leviathan Hunters: Sailors led by Lord Strangford. Tier V. The Docks
631
+
632
+ Lord Scurlock: Powerful vampire noble. Tier III. Six Towers
633
+
634
+ The Lost: Ex-soldiers and toughs protecting the poor. Tier I. Coalridge and Dunslough
635
+
636
+ Ministry of Preservation: Oversees transportation and imports. Tier V. Nightmarket
637
+
638
+ The Path of Echoes: Reveres ancient ghosts and the past. Tier III. Six Towers
639
+
640
+ Rail Jacks: Mechanics on the electro-rail and spirit fighters. Tier II. Nightmarket
641
+
642
+ The Reconciled: Ghosts that haven’t gone crazy in time. Tier III. Six Towers
643
+
644
+ The Red Sashes: Iruvian sword school gang. Tier II. Crow’s Foot, The Docks
645
+
646
+ Sailors: Crews of merchant ships. Tier III. The Docks
647
+
648
+ The Silver Nails: Severosi spirit-hunters. Tier III. Barrowcleft
649
+
650
+ Skovlander Refugees: Fled because of the war, turned to crime. Tier III. Charhollow
651
+
652
+ Sparkwrights: Engineers who invented the lightning barriers. Tier IV. Coalridge
653
+
654
+ Spirit Wardens: Spirit hunters and maintainers of the ghost field. Tier IV. Whitecrown
655
+
656
+ Ulf Ironborn: New gangleader supporting Skovland. Tier I. Coalridge
657
+
658
+ The Unseen: Magically secret crime racket. Tier IV. Silkshore
659
+
660
+ The Weeping Lady: Charity for the poor. Tier II. Charhollow
661
+
662
+ The Wraiths: Masked thieves and spies. Tier II. Silkshore, Nightmarket
requirements.txt CHANGED
@@ -3,3 +3,5 @@ smolagents
3
  requests
4
  duckduckgo_search
5
  pandas
 
 
 
3
  requests
4
  duckduckgo_search
5
  pandas
6
+ langchain
7
+ langchain-community
retriever.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from langchain.docstore.document import Document
2
+ from langchain.text_splitter import RecursiveCharacterTextSplitter
3
+ from smolagents import Tool
4
+ from langchain_community.retrievers import BM25Retriever
5
+ from smolagents import CodeAgent, HfApiModel
6
+
7
+ class BladesInTheDarkRetrievalTool(Tool):
8
+ name = "BladesInTheDarkRetrievalTool"
9
+ description = "Uses semantic search to retrieve relevant setting details from Doskvol, the main city of Blades in the Dark, an RPG."
10
+ inputs = {
11
+ "query": {
12
+ "type": "string",
13
+ "description": "The query to perform. This should be a query for details on the setting.",
14
+ }
15
+ }
16
+ output_type = "string"
17
+
18
+ def __init__(self, docs, **kwargs):
19
+ super().__init__(**kwargs)
20
+ self.retriever = BM25Retriever.from_documents(
21
+ docs, k=5 # Retrieve the top 5 documents
22
+ )
23
+
24
+ def forward(self, query: str) -> str:
25
+ assert isinstance(query, str), "Your search query must be a string"
26
+
27
+ docs = self.retriever.invoke(
28
+ query,
29
+ )
30
+ return "\nRetrieved ideas:\n" + "".join(
31
+ [
32
+ f"\n\n===== Idea {str(i)} =====\n" + doc.page_content
33
+ for i, doc in enumerate(docs)
34
+ ]
35
+ )
36
+
37
+
38
+ def prepare_docs(file_path: str):
39
+ # just one file for now
40
+ with open(file_path, "r") as f:
41
+ source_docs = [Document(page_content=f.read())]
42
+ splitter = RecursiveCharacterTextSplitter(
43
+ chunk_size=500,
44
+ chunk_overlap=50,
45
+ add_start_index=True,
46
+ strip_whitespace=True,
47
+ separators=["\n\n", "\n", ".", " ", ""],
48
+ )
49
+ docs_processed = splitter.split_documents(source_docs)
50
+ return docs_processed
tools/visit_webpage.py CHANGED
@@ -3,6 +3,8 @@ from smolagents.tools import Tool
3
  import requests
4
  import markdownify
5
  import smolagents
 
 
6
 
7
  class VisitWebpageTool(Tool):
8
  name = "visit_webpage"
 
3
  import requests
4
  import markdownify
5
  import smolagents
6
+ import re
7
+
8
 
9
  class VisitWebpageTool(Tool):
10
  name = "visit_webpage"