forked from gcoulby/IronswornCompanion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.html
553 lines (510 loc) · 54.1 KB
/
README.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
<!doctype html>
<html>
<head>
<meta charset='UTF-8'><meta name='viewport' content='width=device-width initial-scale=1'>
<title>README</title><link href='https://fonts.loli.net/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext' rel='stylesheet' type='text/css' /><style type='text/css'>html {overflow-x: initial !important;}:root { --bg-color:#ffffff; --text-color:#333333; --select-text-bg-color:#B5D6FC; --select-text-font-color:auto; --monospace:"Lucida Console",Consolas,"Courier",monospace; --title-bar-height:20px; }
.mac-os-11 { --title-bar-height:28px; }
html { font-size: 14px; background-color: var(--bg-color); color: var(--text-color); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -webkit-font-smoothing: antialiased; }
body { margin: 0px; padding: 0px; height: auto; bottom: 0px; top: 0px; left: 0px; right: 0px; font-size: 1rem; line-height: 1.42857; overflow-x: hidden; background: inherit; tab-size: 4; }
iframe { margin: auto; }
a.url { word-break: break-all; }
a:active, a:hover { outline: 0px; }
.in-text-selection, ::selection { text-shadow: none; background: var(--select-text-bg-color); color: var(--select-text-font-color); }
#write { margin: 0px auto; height: auto; width: inherit; word-break: normal; overflow-wrap: break-word; position: relative; white-space: normal; overflow-x: visible; padding-top: 36px; }
#write.first-line-indent p { text-indent: 2em; }
#write.first-line-indent li p, #write.first-line-indent p * { text-indent: 0px; }
#write.first-line-indent li { margin-left: 2em; }
.for-image #write { padding-left: 8px; padding-right: 8px; }
body.typora-export { padding-left: 30px; padding-right: 30px; }
.typora-export .footnote-line, .typora-export li, .typora-export p { white-space: pre-wrap; }
.typora-export .task-list-item input { pointer-events: none; }
@media screen and (max-width: 500px) {
body.typora-export { padding-left: 0px; padding-right: 0px; }
#write { padding-left: 20px; padding-right: 20px; }
.CodeMirror-sizer { margin-left: 0px !important; }
.CodeMirror-gutters { display: none !important; }
}
#write li > figure:last-child { margin-bottom: 0.5rem; }
#write ol, #write ul { position: relative; }
img { max-width: 100%; vertical-align: middle; image-orientation: from-image; }
button, input, select, textarea { color: inherit; font: inherit; }
input[type="checkbox"], input[type="radio"] { line-height: normal; padding: 0px; }
*, ::after, ::before { box-sizing: border-box; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p, #write pre { width: inherit; }
#write h1, #write h2, #write h3, #write h4, #write h5, #write h6, #write p { position: relative; }
p { line-height: inherit; }
h1, h2, h3, h4, h5, h6 { break-after: avoid-page; break-inside: avoid; orphans: 4; }
p { orphans: 4; }
h1 { font-size: 2rem; }
h2 { font-size: 1.8rem; }
h3 { font-size: 1.6rem; }
h4 { font-size: 1.4rem; }
h5 { font-size: 1.2rem; }
h6 { font-size: 1rem; }
.md-math-block, .md-rawblock, h1, h2, h3, h4, h5, h6, p { margin-top: 1rem; margin-bottom: 1rem; }
.hidden { display: none; }
.md-blockmeta { color: rgb(204, 204, 204); font-weight: 700; font-style: italic; }
a { cursor: pointer; }
sup.md-footnote { padding: 2px 4px; background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-radius: 4px; cursor: pointer; }
sup.md-footnote a, sup.md-footnote a:hover { color: inherit; text-transform: inherit; text-decoration: inherit; }
#write input[type="checkbox"] { cursor: pointer; width: inherit; height: inherit; }
figure { overflow-x: auto; margin: 1.2em 0px; max-width: calc(100% + 16px); padding: 0px; }
figure > table { margin: 0px; }
tr { break-inside: avoid; break-after: auto; }
thead { display: table-header-group; }
table { border-collapse: collapse; border-spacing: 0px; width: 100%; overflow: auto; break-inside: auto; text-align: left; }
table.md-table td { min-width: 32px; }
.CodeMirror-gutters { border-right: 0px; background-color: inherit; }
.CodeMirror-linenumber { user-select: none; }
.CodeMirror { text-align: left; }
.CodeMirror-placeholder { opacity: 0.3; }
.CodeMirror pre { padding: 0px 4px; }
.CodeMirror-lines { padding: 0px; }
div.hr:focus { cursor: none; }
#write pre { white-space: pre-wrap; }
#write.fences-no-line-wrapping pre { white-space: pre; }
#write pre.ty-contain-cm { white-space: normal; }
.CodeMirror-gutters { margin-right: 4px; }
.md-fences { font-size: 0.9rem; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: pre; background: inherit; position: relative !important; }
.md-diagram-panel { width: 100%; margin-top: 10px; text-align: center; padding-top: 0px; padding-bottom: 8px; overflow-x: auto; }
#write .md-fences.mock-cm { white-space: pre-wrap; }
.md-fences.md-fences-with-lineno { padding-left: 0px; }
#write.fences-no-line-wrapping .md-fences.mock-cm { white-space: pre; overflow-x: auto; }
.md-fences.mock-cm.md-fences-with-lineno { padding-left: 8px; }
.CodeMirror-line, twitterwidget { break-inside: avoid; }
.footnotes { opacity: 0.8; font-size: 0.9rem; margin-top: 1em; margin-bottom: 1em; }
.footnotes + .footnotes { margin-top: 0px; }
.md-reset { margin: 0px; padding: 0px; border: 0px; outline: 0px; vertical-align: top; background: 0px 0px; text-decoration: none; text-shadow: none; float: none; position: static; width: auto; height: auto; white-space: nowrap; cursor: inherit; -webkit-tap-highlight-color: transparent; line-height: normal; font-weight: 400; text-align: left; box-sizing: content-box; direction: ltr; }
li div { padding-top: 0px; }
blockquote { margin: 1rem 0px; }
li .mathjax-block, li p { margin: 0.5rem 0px; }
li blockquote { margin: 1rem 0px; }
li { margin: 0px; position: relative; }
blockquote > :last-child { margin-bottom: 0px; }
blockquote > :first-child, li > :first-child { margin-top: 0px; }
.footnotes-area { color: rgb(136, 136, 136); margin-top: 0.714rem; padding-bottom: 0.143rem; white-space: normal; }
#write .footnote-line { white-space: pre-wrap; }
@media print {
body, html { border: 1px solid transparent; height: 99%; break-after: avoid; break-before: avoid; font-variant-ligatures: no-common-ligatures; }
#write { margin-top: 0px; padding-top: 0px; border-color: transparent !important; }
.typora-export * { -webkit-print-color-adjust: exact; }
.typora-export #write { break-after: avoid; }
.typora-export #write::after { height: 0px; }
.is-mac table { break-inside: avoid; }
}
.footnote-line { margin-top: 0.714em; font-size: 0.7em; }
a img, img a { cursor: pointer; }
pre.md-meta-block { font-size: 0.8rem; min-height: 0.8rem; white-space: pre-wrap; background: rgb(204, 204, 204); display: block; overflow-x: hidden; }
p > .md-image:only-child:not(.md-img-error) img, p > img:only-child { display: block; margin: auto; }
#write.first-line-indent p > .md-image:only-child:not(.md-img-error) img { left: -2em; position: relative; }
p > .md-image:only-child { display: inline-block; width: 100%; }
#write .MathJax_Display { margin: 0.8em 0px 0px; }
.md-math-block { width: 100%; }
.md-math-block:not(:empty)::after { display: none; }
.MathJax_ref { fill: currentcolor; }
[contenteditable="true"]:active, [contenteditable="true"]:focus, [contenteditable="false"]:active, [contenteditable="false"]:focus { outline: 0px; box-shadow: none; }
.md-task-list-item { position: relative; list-style-type: none; }
.task-list-item.md-task-list-item { padding-left: 0px; }
.md-task-list-item > input { position: absolute; top: 0px; left: 0px; margin-left: -1.2em; margin-top: calc(1em - 10px); border: none; }
.math { font-size: 1rem; }
.md-toc { min-height: 3.58rem; position: relative; font-size: 0.9rem; border-radius: 10px; }
.md-toc-content { position: relative; margin-left: 0px; }
.md-toc-content::after, .md-toc::after { display: none; }
.md-toc-item { display: block; color: rgb(65, 131, 196); }
.md-toc-item a { text-decoration: none; }
.md-toc-inner:hover { text-decoration: underline; }
.md-toc-inner { display: inline-block; cursor: pointer; }
.md-toc-h1 .md-toc-inner { margin-left: 0px; font-weight: 700; }
.md-toc-h2 .md-toc-inner { margin-left: 2em; }
.md-toc-h3 .md-toc-inner { margin-left: 4em; }
.md-toc-h4 .md-toc-inner { margin-left: 6em; }
.md-toc-h5 .md-toc-inner { margin-left: 8em; }
.md-toc-h6 .md-toc-inner { margin-left: 10em; }
@media screen and (max-width: 48em) {
.md-toc-h3 .md-toc-inner { margin-left: 3.5em; }
.md-toc-h4 .md-toc-inner { margin-left: 5em; }
.md-toc-h5 .md-toc-inner { margin-left: 6.5em; }
.md-toc-h6 .md-toc-inner { margin-left: 8em; }
}
a.md-toc-inner { font-size: inherit; font-style: inherit; font-weight: inherit; line-height: inherit; }
.footnote-line a:not(.reversefootnote) { color: inherit; }
.md-attr { display: none; }
.md-fn-count::after { content: "."; }
code, pre, samp, tt { font-family: var(--monospace); }
kbd { margin: 0px 0.1em; padding: 0.1em 0.6em; font-size: 0.8em; color: rgb(36, 39, 41); background: rgb(255, 255, 255); border: 1px solid rgb(173, 179, 185); border-radius: 3px; box-shadow: rgba(12, 13, 14, 0.2) 0px 1px 0px, rgb(255, 255, 255) 0px 0px 0px 2px inset; white-space: nowrap; vertical-align: middle; }
.md-comment { color: rgb(162, 127, 3); opacity: 0.8; font-family: var(--monospace); }
code { text-align: left; vertical-align: initial; }
a.md-print-anchor { white-space: pre !important; border-width: initial !important; border-style: none !important; border-color: initial !important; display: inline-block !important; position: absolute !important; width: 1px !important; right: 0px !important; outline: 0px !important; background: 0px 0px !important; text-decoration: initial !important; text-shadow: initial !important; }
.md-inline-math .MathJax_SVG .noError { display: none !important; }
.html-for-mac .inline-math-svg .MathJax_SVG { vertical-align: 0.2px; }
.md-math-block .MathJax_SVG_Display { text-align: center; margin: 0px; position: relative; text-indent: 0px; max-width: none; max-height: none; min-height: 0px; min-width: 100%; width: auto; overflow-y: hidden; display: block !important; }
.MathJax_SVG_Display, .md-inline-math .MathJax_SVG_Display { width: auto; margin: inherit; display: inline-block !important; }
.MathJax_SVG .MJX-monospace { font-family: var(--monospace); }
.MathJax_SVG .MJX-sans-serif { font-family: sans-serif; }
.MathJax_SVG { display: inline; font-style: normal; font-weight: 400; line-height: normal; zoom: 90%; text-indent: 0px; text-align: left; text-transform: none; letter-spacing: normal; word-spacing: normal; overflow-wrap: normal; white-space: nowrap; float: none; direction: ltr; max-width: none; max-height: none; min-width: 0px; min-height: 0px; border: 0px; padding: 0px; margin: 0px; }
.MathJax_SVG * { transition: none 0s ease 0s; }
.MathJax_SVG_Display svg { vertical-align: middle !important; margin-bottom: 0px !important; margin-top: 0px !important; }
.os-windows.monocolor-emoji .md-emoji { font-family: "Segoe UI Symbol", sans-serif; }
.md-diagram-panel > svg { max-width: 100%; }
[lang="flow"] svg, [lang="mermaid"] svg { max-width: 100%; height: auto; }
[lang="mermaid"] .node text { font-size: 1rem; }
table tr th { border-bottom: 0px; }
video { max-width: 100%; display: block; margin: 0px auto; }
iframe { max-width: 100%; width: 100%; border: none; }
.highlight td, .highlight tr { border: 0px; }
mark { background: rgb(255, 255, 0); color: rgb(0, 0, 0); }
.md-html-inline .md-plain, .md-html-inline strong, mark .md-inline-math, mark strong { color: inherit; }
mark .md-meta { color: rgb(0, 0, 0); opacity: 0.3 !important; }
@media print {
.typora-export h1, .typora-export h2, .typora-export h3, .typora-export h4, .typora-export h5, .typora-export h6 { break-inside: avoid; }
}
.md-diagram-panel .messageText { stroke: none !important; }
.md-diagram-panel .start-state { fill: var(--node-fill); }
.md-diagram-panel .edgeLabel rect { opacity: 1 !important; }
.md-require-zoom-fix foreignobject { font-size: var(--mermaid-font-zoom); }
:root {
--side-bar-bg-color: #fafafa;
--control-text-color: #777;
}
@include-when-export url(https://fonts.loli.net/css?family=Open+Sans:400italic,700italic,700,400&subset=latin,latin-ext);
/* open-sans-regular - latin-ext_latin */
/* open-sans-italic - latin-ext_latin */
/* open-sans-700 - latin-ext_latin */
/* open-sans-700italic - latin-ext_latin */
html {
font-size: 16px;
}
body {
font-family: "Open Sans","Clear Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
color: rgb(51, 51, 51);
line-height: 1.6;
}
#write {
max-width: 860px;
margin: 0 auto;
padding: 30px;
padding-bottom: 100px;
}
@media only screen and (min-width: 1400px) {
#write {
max-width: 1024px;
}
}
@media only screen and (min-width: 1800px) {
#write {
max-width: 1200px;
}
}
#write > ul:first-child,
#write > ol:first-child{
margin-top: 30px;
}
a {
color: #4183C4;
}
h1,
h2,
h3,
h4,
h5,
h6 {
position: relative;
margin-top: 1rem;
margin-bottom: 1rem;
font-weight: bold;
line-height: 1.4;
cursor: text;
}
h1:hover a.anchor,
h2:hover a.anchor,
h3:hover a.anchor,
h4:hover a.anchor,
h5:hover a.anchor,
h6:hover a.anchor {
text-decoration: none;
}
h1 tt,
h1 code {
font-size: inherit;
}
h2 tt,
h2 code {
font-size: inherit;
}
h3 tt,
h3 code {
font-size: inherit;
}
h4 tt,
h4 code {
font-size: inherit;
}
h5 tt,
h5 code {
font-size: inherit;
}
h6 tt,
h6 code {
font-size: inherit;
}
h1 {
font-size: 2.25em;
line-height: 1.2;
border-bottom: 1px solid #eee;
}
h2 {
font-size: 1.75em;
line-height: 1.225;
border-bottom: 1px solid #eee;
}
/*@media print {
.typora-export h1,
.typora-export h2 {
border-bottom: none;
padding-bottom: initial;
}
.typora-export h1::after,
.typora-export h2::after {
content: "";
display: block;
height: 100px;
margin-top: -96px;
border-top: 1px solid #eee;
}
}*/
h3 {
font-size: 1.5em;
line-height: 1.43;
}
h4 {
font-size: 1.25em;
}
h5 {
font-size: 1em;
}
h6 {
font-size: 1em;
color: #777;
}
p,
blockquote,
ul,
ol,
dl,
table{
margin: 0.8em 0;
}
li>ol,
li>ul {
margin: 0 0;
}
hr {
height: 2px;
padding: 0;
margin: 16px 0;
background-color: #e7e7e7;
border: 0 none;
overflow: hidden;
box-sizing: content-box;
}
li p.first {
display: inline-block;
}
ul,
ol {
padding-left: 30px;
}
ul:first-child,
ol:first-child {
margin-top: 0;
}
ul:last-child,
ol:last-child {
margin-bottom: 0;
}
blockquote {
border-left: 4px solid #dfe2e5;
padding: 0 15px;
color: #777777;
}
blockquote blockquote {
padding-right: 0;
}
table {
padding: 0;
word-break: initial;
}
table tr {
border-top: 1px solid #dfe2e5;
margin: 0;
padding: 0;
}
table tr:nth-child(2n),
thead {
background-color: #f8f8f8;
}
table th {
font-weight: bold;
border: 1px solid #dfe2e5;
border-bottom: 0;
margin: 0;
padding: 6px 13px;
}
table td {
border: 1px solid #dfe2e5;
margin: 0;
padding: 6px 13px;
}
table th:first-child,
table td:first-child {
margin-top: 0;
}
table th:last-child,
table td:last-child {
margin-bottom: 0;
}
.CodeMirror-lines {
padding-left: 4px;
}
.code-tooltip {
box-shadow: 0 1px 1px 0 rgba(0,28,36,.3);
border-top: 1px solid #eef2f2;
}
.md-fences,
code,
tt {
border: 1px solid #e7eaed;
background-color: #f8f8f8;
border-radius: 3px;
padding: 0;
padding: 2px 4px 0px 4px;
font-size: 0.9em;
}
code {
background-color: #f3f4f4;
padding: 0 2px 0 2px;
}
.md-fences {
margin-bottom: 15px;
margin-top: 15px;
padding-top: 8px;
padding-bottom: 6px;
}
.md-task-list-item > input {
margin-left: -1.3em;
}
@media print {
html {
font-size: 13px;
}
table,
pre {
page-break-inside: avoid;
}
pre {
word-wrap: break-word;
}
}
.md-fences {
background-color: #f8f8f8;
}
#write pre.md-meta-block {
padding: 1rem;
font-size: 85%;
line-height: 1.45;
background-color: #f7f7f7;
border: 0;
border-radius: 3px;
color: #777777;
margin-top: 0 !important;
}
.mathjax-block>.code-tooltip {
bottom: .375rem;
}
.md-mathjax-midline {
background: #fafafa;
}
#write>h3.md-focus:before{
left: -1.5625rem;
top: .375rem;
}
#write>h4.md-focus:before{
left: -1.5625rem;
top: .285714286rem;
}
#write>h5.md-focus:before{
left: -1.5625rem;
top: .285714286rem;
}
#write>h6.md-focus:before{
left: -1.5625rem;
top: .285714286rem;
}
.md-image>.md-meta {
/*border: 1px solid #ddd;*/
border-radius: 3px;
padding: 2px 0px 0px 4px;
font-size: 0.9em;
color: inherit;
}
.md-tag {
color: #a7a7a7;
opacity: 1;
}
.md-toc {
margin-top:20px;
padding-bottom:20px;
}
.sidebar-tabs {
border-bottom: none;
}
#typora-quick-open {
border: 1px solid #ddd;
background-color: #f8f8f8;
}
#typora-quick-open-item {
background-color: #FAFAFA;
border-color: #FEFEFE #e5e5e5 #e5e5e5 #eee;
border-style: solid;
border-width: 1px;
}
/** focus mode */
.on-focus-mode blockquote {
border-left-color: rgba(85, 85, 85, 0.12);
}
header, .context-menu, .megamenu-content, footer{
font-family: "Segoe UI", "Arial", sans-serif;
}
.file-node-content:hover .file-node-icon,
.file-node-content:hover .file-node-open-state{
visibility: visible;
}
.mac-seamless-mode #typora-sidebar {
background-color: #fafafa;
background-color: var(--side-bar-bg-color);
}
.md-lang {
color: #b4654d;
}
.html-for-mac .context-menu {
--item-hover-bg-color: #E6F0FE;
}
#md-notification .btn {
border: 0;
}
.dropdown-menu .divider {
border-color: #e5e5e5;
}
.ty-preferences .window-content {
background-color: #fafafa;
}
.ty-preferences .nav-group-item.active {
color: white;
background: #999;
}
</style>
</head>
<body class='typora-export os-windows'>
<div id='write' class=''><h1><a name="ironsworn-companion" class="md-header-anchor"></a><span>Ironsworn Companion</span></h1><p> </p><h1><a name="introduction" class="md-header-anchor"></a><span>Introduction</span></h1><h2><a name="what-is-ironsworn" class="md-header-anchor"></a><span>What is Ironsworn?</span></h2><p><span>Ironsworn is a tabletop RPG created by Shawn Tomkin. What makes Ironsworn unique is that unlike traditional tabletop RPGs, Ironsworn enables solo/ small-group play, as its unique game mechanics remove the need for a traditional game master.</span></p><p><span>What is even more fascinating about Ironsworn is the distribution methods. When reading the game, you realise the care, effort and devotion that has gone in to creating this game and yet, the game is released as open-source under the creative commons 4.0 </span><a href='https://creativecommons.org/licenses/by/4.0/'><img src="https://camo.githubusercontent.com/bca967b18143b8a5b2ffe78bd4a1a30f6bc21de83bd8336f748e96498af38b38/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d43432532304259253230342e302d6c69676874677265792e737667" referrerpolicy="no-referrer" alt="License: CC BY 4.0"></a></p><p><span>Ironsworn truly is a labour of love and is available for free at </span><a href='https://www.ironswornrpg.com/' target='_blank' class='url'>https://www.ironswornrpg.com/</a></p><h2><a name="what-is-the-ironsworn-companion" class="md-header-anchor"></a><span>What is the Ironsworn Companion?</span></h2><p><span>First and foremost, this application is not an official Ironsworn product, instead it leverages the CC4.0 license to provide a digital toolkit for playing the game.</span></p><p><span>I used to use platforms such as Roll20 for playing campaigns with a remote group of friends. I wanted a similar experience from Ironsworn, e.g. a digital companion app that could aid, automate and track my game to reduce on paper waste and also provide quick and easy ways to exploit mechanics such as </span><code>The Oracle</code><span> </span><em><span>(a roll-based game mechanic to spark ideas during game play).</span></em></p><p><span>While there are various companions out there, I was disappointed with the features and felt they didn't match my view of what the companion should be like. That's not to say the other apps are bad, but many just felt like lightweight tools to support pen and paper play, which is great, if that is what you want.</span></p><p><span>This app is not designed to replace the rules, though it may clear your desk of progress tracks and asset cards.</span></p><hr /><h1><a name="using-the-app" class="md-header-anchor"></a><span>Using the app</span></h1><p><span>The following sections will provide instruction on how to use the individual components in the app.</span></p><hr /><h2><a name="sections" class="md-header-anchor"></a><span>Sections</span></h2><p><span>Key areas such as a pages will be shown like this throughout the documentation: </span><code>Characters</code><span>, </span><code>Background</code><span> etc.</span></p><p><span>At times the documentation will refer to sections. There are three main sections to this app: </span><code>Header</code><span>, </span><code>Sidebar</code><span> and </span><code>Footer</code><span>. These are fairly self explanatory.</span></p><h3><a name="header" class="md-header-anchor"></a><span>Header</span></h3><p><span>The </span><code>Header</code><span> refers to the top of the page where the </span><code>Character Selector</code><span> and </span><code>Stat Overview</code><span> exists.</span></p><p><img src="https://i.imgur.com/RMaRVJB.png" referrerpolicy="no-referrer" alt="image-20210316092433055"></p><h3><a name="sidebar" class="md-header-anchor"></a><span>Sidebar</span></h3><p><span>The </span><code>Sidebar</code><span> refers to the side navigation menu. This section is used for navigating around the app.</span></p><p><img src="https://i.imgur.com/WHH1Tc9.png" referrerpolicy="no-referrer" alt="image-20210316092602896"></p><h3><a name="footer" class="md-header-anchor"></a><span>Footer</span></h3><p><span>The </span><code>Footer</code><span> contains a quick dice roller. This can be used to roll on stats with an action dice vs two challenge dice. When you click </span><code>Roll</code><span> a box will appear that will state either </span><code>Miss</code><span>, </span><code>Weak Hit</code><span>, or </span><code>Strong Hit</code><span>. Hovering over this box will make a breakdown of the roll appear in a popup. Progression tracks also make use of this, which we will explore later.</span></p><p><img src="https://i.imgur.com/UQCOnvb.png" referrerpolicy="no-referrer" alt="image-20210316092805822"></p><hr /><h2><a name="oracles" class="md-header-anchor"></a><span>Oracles</span></h2><p><span>Before discussing the features of the app its important to understand how the oracle works. Throughout the companion you will see the following roll icon in various places:</span></p><p><img src="https://i.imgur.com/JlEztdW.png" referrerpolicy="no-referrer" alt="image-20210226101636509"></p><p><span>This icon denotes that you can consult the oracle. Each implementation of the oracle differs between pages. For example, by consulting the oracle during character creation, a random Ironlander name will be generated. On the other hand, by consulting the oracle during world creation, a number of world truths will be defined. As with everything in Ironsworn, if the Oracle's insights are not inline with your version of the Ironlands or provides some contradiction, you can either roll again or carve your own path. You should definitely consult the rules on how exactly to use the Oracle, this app merely takes away the need to cross reference a comprehensive list of roll tables.</span></p><h3><a name="oracle-page" class="md-header-anchor"></a><span>Oracle Page</span></h3><p><span>To supplement the oracle implementations on each page, there is also a page dedicated to oracles. The Oracles page provides the ability to roll on any oracle table and get a random result. Since there are no dice involved here, the oracle tables can be any size you like. After rolling an oracle table you can click on the result and it will automatically copy to clipboard.</span></p><h4><a name="oracle-creation" class="md-header-anchor"></a><span>Oracle Creation</span></h4><p><span>New Oracle tables can be created using the form at the top of the page. Simply enter the Oracle Table name and press</span></p><p><code>+ Add Oracle Table</code></p><h4><a name="editing-oracle-tables" class="md-header-anchor"></a><span>Editing Oracle Tables</span></h4><p><span>Once you have added an oracle table you can edit the tables using the left hand column. Simply select an oracle table from the drop down box and start typing in the box below. Every line represents 1 row in the oracle table. For this reason, long oracles will cause a scroll bar to appear along the bottom of the text box... Do not press Enter to make the box look pretty as this will split your oracle in two.</span></p><hr /><h2><a name="characters" class="md-header-anchor"></a><span>Characters</span></h2><p><span>Most of the functionality of the the companion app will not work unless you create and select a character. Characters represent players and multiple characters can be created. However, only 1 character can be selected at a time. This will mean a degree of micro management will be needed in coop games.</span></p><h3><a name="create-a-character" class="md-header-anchor"></a><span>Create a character</span></h3><p><span>To create a character go to the </span><code>Characters</code><span> page and either enter the details into the form manually or roll the individual fields against the respective oracle tables.</span></p><blockquote><p><span>For more information on Character creation consult </span><strong><span>Chapter 2</span></strong><span> of the Ironsworn rulebook.</span></p></blockquote><h4><a name="stats" class="md-header-anchor"></a><span>Stats</span></h4><p><span>There are five stats in total. Each is given a value from 1 to 3. To start, arrange these bonuses across your five stats in any order: </span><strong><span>3, 2, 2, 1, 1.</span></strong><span> You can also roll on the oracle to leave your primary stat choice down to fate. The </span><code>Roll Primary Stat</code><span> button will choose 1 of the stats at random to be your primary stat </span><code>value=3</code><span>. You can then enter two 1s and two 2s into the remaining stats.</span></p><h3><a name="selected-character" class="md-header-anchor"></a><span>Selected character</span></h3><p><span>Once you have created a character it will appear under the </span><code>CHARACTER SELECTION</code><span> heading. This will show a card for each character, which will all contain a </span><code>Select</code><span> and </span><code>Delete</code><span> button. Delete button will completely delete your character and Select will make your character the </span><strong><code>Selected Character</code></strong><span>. To use all of the functionality of the companion there must always be one </span><strong><code>Selected Character</code></strong><span>.</span></p><p><span>Characters can also be selected from the dropdown box in the </span><code>Header</code><span>. Once a character is a selected, their stats will be shown across the top of the pages, which provide 2 purposes. Firstly, they provide a persistent view of character stats, regardless of where you at the app. Secondly, the stats are buttons and can be clicked to take you to your </span><code>Character Sheet</code><span>.</span></p><p><span>After selecting a character you are automatically taken to the </span><code>Stats</code><span> page, which shows a character sheet for the </span><strong><code>Selected Character</code></strong><span>.</span></p><hr /><h2><a name="logs" class="md-header-anchor"></a><span>Logs</span></h2><p><span>There are two logs in the companion </span><code>Campaign Log</code><span> and </span><code>Background</code><span>. These logs are used to add fiction or metagame information to your campaign. The </span><code>Campaign Log</code><span> is for adding information about events, plot, story or anything related to the campaign that is not character specific. The </span><code>Background</code><span> page is for adding information specific to the </span><strong><code>Selected Character</code></strong></p><h3><a name="adding-logs" class="md-header-anchor"></a><span>Adding Logs</span></h3><p><span>To add a log enter text into the text box at the bottom of a log page and press </span><code>SHIFT + ENTER</code><span> to enter fiction </span><em><span>(this information should be in character/roleplay)</span></em><span>. Alternatively press </span><code>CTRL + ENTER</code><span> to enter metagame information </span><em><span>(This information can be out of character/roleplay)</span></em><span>.</span></p><h3><a name="viewing-and-deleting-logs" class="md-header-anchor"></a><span>Viewing and Deleting Logs</span></h3><p><span>Once logs are added they will appear in the box above the input box. They will appear in chronological order and are all timestamped with the date/time they were added. The box will auto scroll to the bottom of the page on refresh, or when a new log item is added.</span></p><hr /><h2><a name="world-truths" class="md-header-anchor"></a><span>World Truths</span></h2><p><span>As the name suggests, the </span><code>World Truths</code><span> page is for selecting the truths of your world. In short, there are a various categories under the </span><code>World Truths</code><span> page such as </span><code>The Old World</code><span> or </span><code>Religion</code><span>. Under each category there are </span><strong><span>3</span></strong><span> truths. You should choose a truth from each page this will define the parameters of your world. For example, the </span><code>Mysticism</code><span> tab is for choosing the truth about the prevalence of magic, the three options define whether magic is a myth, a rarity or commonplace.</span></p><h3><a name="selecting-a-truth" class="md-header-anchor"></a><span>Selecting a Truth</span></h3><p><span>To select a truth, simply click on the card. Once selected, a checkmark (</span><code>✔</code><span>) will appear on the right hand side of the card and the card will be surrounded with a black border.</span></p><h3><a name="changing-truths" class="md-header-anchor"></a><span>Changing Truths</span></h3><p><span>As your story unfolds you may find out that you were wrong about your truth selection, i.e. you may go into your world with the idea that there is no magic, but then you meet a ancient mystic who shows you that magic is not a myth, but is rare, dangerous and part of an underground movement. For this reason, you can change your truths at any time.</span></p><h3><a name="rolling-a-random-world" class="md-header-anchor"></a><span>Rolling a Random World</span></h3><p><span>You have the option to </span><code>Roll a Random World</code><span>. Clicking this box will randomly choose a truth for each category to add more randomness to your world.</span></p><h3><a name="custom-world-truths" class="md-header-anchor"></a><span>Custom World Truths.</span></h3><p><span>The custom tab contains two text boxes. One for a custom quest starter and the other for custom world details. Be descriptive here. You can use this box to define an entirely custom world or provide modifiers to existing truths from other categories. It is your world so get creative.</span></p><blockquote><p><span>For more information on World Truths consult </span><strong><span>Chapter 4</span></strong><span> of the Ironsworn rulebook.</span></p></blockquote><hr /><h2><a name="npcs" class="md-header-anchor"></a><span>NPCs</span></h2><p><span>The NPCs page is for creating </span><strong><span>N</span></strong><span>on-</span><strong><span>P</span></strong><span>layer </span><strong><span>C</span></strong><span>haracters. Creation of NPCs is functionally similar to character creation except there are more options to roll on. Each oracle roll will work the same way as character creation, except for </span><code>Name</code><span>. If you roll on </span><code>Name</code><span>, before choosing a </span><code>Race</code><span>, a race will be selected for you as this will determine which oracle table the name is chosen from.</span></p><h3><a name="story-helpers" class="md-header-anchor"></a><span>Story Helpers</span></h3><p><span>NPCs have more options to roll on that characters to provide more flavour to your NPCs that can drive your story.</span></p><ul><li><code>Dispositions</code><span> help drive the narrative as NPCs could be </span><code>helpful</code><span> or </span><code>curious</code><span>, alternatively they could be </span><code>threatening</code><span> or </span><code>derisive</code></li><li><code>NPC Conversation</code><span> will tell you the nature of their conversations topics; for example, they may tell you about their heritage or about the leadership of their settlement.</span></li><li><code>NPC Knowledge</code><span> will inform you about what information they know about.</span></li></ul><h3><a name="last-location" class="md-header-anchor"></a><span>Last Location</span></h3><p><span>If you have created locations (See </span><a href='#locations-and-settlements'><span>Locations and Settlements</span></a><span>) you will be able to specify the NPC's last know location. Simply select a location from the dropdown box either during NPC creation, or from their NPC card.</span></p><h3><a name="bonds" class="md-header-anchor"></a><span>Bonds</span></h3><p><span>If you have a character selected a </span><code>Bond</code><span> Track will appear on the NPC card once it is created. Increasing the bond track of an NPC. will increase the NPCs track by </span><code>1 Tick</code><span>. It will also increase the bond track of the </span><strong><code>Selected Character</code></strong><span> by </span><code>1 Tick</code><span>. If you need to add </span><code>bonds</code><span> to multiple characters </span><em><span>(for co-op)</span></em><span>, this will </span><strong><span>not</span></strong><span> be done automatically, instead you should use the character select drop down in the </span><code>Header</code><span> to switch to other character sheets and manually enter those bonds to other characters.</span></p><hr /><h2><a name="locations-and-settlements" class="md-header-anchor"></a><span>Locations and Settlements</span></h2><p><span>Locations and settlements can be added to an interactive map under the </span><code>Locations and Settlements</code><span> page.</span></p><h3><a name="adding-a-location" class="md-header-anchor"></a><span>Adding a location</span></h3><p><span>The </span><code>Add Location</code><span> form is also used to edit existing locations. Consequently, when you click on the map the form will be reset. Therefore, to add a location you </span><strong><span>must</span></strong><span> click on the map </span><strong><span>first</span></strong><span> to choose the location of the new settlement. This will add the XY coordinates to the input form. From there, you can then manually enter details about the settlement or roll on the oracle to generate random location details. The additional information can be used to provide flavour and context to your location.</span></p><p><span>Once you have completed the form, click </span><code>Save Location</code><span> this will add a marker to the map.</span></p><h3><a name="editing-a-location" class="md-header-anchor"></a><span>Editing a Location</span></h3><p><span>Clicking on a map marker will populate the form with details on the location. If any NPCs have their </span><code>Last Location</code><span> set to this location/settlement they will appear in a list on this screen. A </span><code>bond</code><span> track is also available, which works the same way as an NPC </span><code>bond</code><span> track. Each progression adds </span><code>1 Tick</code><span> to the location and also </span><code>1 Tick</code><span> to the selected player.</span></p><p><span>When you have finished editing the location click </span><code>Save Location</code></p><h3><a name="delete-location" class="md-header-anchor"></a><span>Delete Location</span></h3><p><span>You can Delete locations by clicking on their map marker and then clicking </span><code>Delete</code></p><hr /><h2><a name="enter-the-fray" class="md-header-anchor"></a><span>Enter the Fray</span></h2><p><span>Enter the fray describes the action of combat.</span></p><p><span>To enter combat, create </span><code>Active Foes</code><span> by either selecting from the </span><code>Category</code><span> and </span><code>Type</code><span> drop boxes or click </span><code>Roll Random Foe</code><span>. Multiple </span><code>Active Foes</code><span> can be added and each Foe will have an individual </span><code>combat track</code><span>.</span></p><h3><a name="foe-card" class="md-header-anchor"></a><span>Foe Card</span></h3><p><span>The </span><code>Foe Card</code><span> provides information and context about your foes:</span></p><p><img src="https://i.imgur.com/hs0ZCN8.png" referrerpolicy="no-referrer" alt="image-20210316095147244"></p><p><span>The title bar of each </span><code>Foe Card</code><span> contains the </span><code>Foe Type</code><span> and </span><code>Rank</code><span> of each Foe. The rank determines how much harm a foe can inflict on a player and also determines the combat progression per harm done. The </span><code>Foe Card</code><span> also contains the page number of the Foe and the source so you can refer to the books for more information.</span></p><h3><a name="roll-progress" class="md-header-anchor"></a><span>Roll Progress</span></h3><p><span>At any point you can </span><code>Roll Progress</code><span>. However, this is dangerous early in the fight, Rolling progress involves rolling the value of the progression track against the challenge dice. If your </span><code>Combat Progress</code><span> is only </span><strong><span>2</span></strong><span>, you will essentially roll </span><strong><span>2</span></strong><span> against two </span><strong><span>D10s</span></strong><span>. This strongly increases the chance of a Miss, which has consequences. When you click </span><code>Roll Progress</code><span> the Foe is selected in the </span><code>Footer</code><span> and you must then click </span><code>Roll</code><span> in the </span><code>Footer</code><span> to determine the outcome.</span></p><p><span>If the roll is successful you can delete the character and move on. If it is not you must </span><code>Pay the Price</code></p><blockquote><p><span>For information about </span><strong><span>Combat</span></strong><span> see </span><strong><span>Chapter 3</span></strong><span> of the Ironsworn rulebook</span></p></blockquote><h3><a name="foe-packs" class="md-header-anchor"></a><span>Foe Packs</span></h3><p><span>The Ironsworn rules allows you to form packs of NPCs that have a single track. This app does not yet implement packs, but the functionality can be easily achieved. Simply, create a single </span><code>Dangerous</code><span> or </span><code>Formidable</code><span> opponent and treat that opponent as a pack.</span></p><blockquote><p><span>For information about </span><strong><span>NPC Packs</span></strong><span> see </span><strong><span>Chapter 5</span></strong><span> of the Ironsworn rulebook</span></p></blockquote><hr /><h2><a name="stats-n120" class="md-header-anchor"></a><span>Stats</span></h2><p><span>The stats page is your digital character sheet. Here you can track </span><code>Experience</code><span>, </span><code>Core Stats</code><span>, </span><code>Health</code><span>, </span><code>Spirit</code><span>, </span><code>Supply</code><span> and </span><code>Momentum</code><span> tracks, as well as </span><code>Debilities</code></p><h3><a name="experience" class="md-header-anchor"></a><span>Experience</span></h3><p><span>Experience is changed manually after </span><code>Fulling a Vow</code><span>. You increase experience with the </span><code>[+]</code><span> button and decrease with the </span><code>[-]</code><span> button. The </span><code>[>>]</code><span> button is for advancing experience when it is spent on </span><code>Assets</code><span> (See </span><a href='#assets'><span>Assets</span></a><span>)</span></p><h3><a name="debilities" class="md-header-anchor"></a><span>Debilities</span></h3><p><span>To add a debility simply click on one of the words. When done, they will be highlighted black. Momentum is automatically affected by </span><code>Debilities</code><span>; reducing the </span><code>Momentum Reset</code><span> and the </span><code>Max Momentum</code><span> values.</span></p><blockquote><p><span>For more information on </span><strong><span>Character Stats</span></strong><span> consult </span><strong><span>Chapter 2</span></strong><span> of the Ironsworn rulebook.</span></p></blockquote><hr /><h2><a name="vows-quests-and-journeys" class="md-header-anchor"></a><span>Vows, Quests and Journeys</span></h2><p><span>Vows quests and Journeys are functionally identical to each other. They are created with the form at the topic where a </span><code>description</code><span> and </span><code>difficulty</code><span> are defined. A card will be created with a </span><code>Progress Track</code><span>, which will work the same way as a Foe </span><code>Combat Track</code><span>. When you roll to </span><code>Fulfill a Vow</code><span>, </span><code>Complete Your Quest</code><span> or </span><code>Reach Your Destination</code><span>, the </span><code>Progress</code><span> will be selected in the </span><code>Footer</code><span> and you can roll on the value.</span></p><h3><a name="differences" class="md-header-anchor"></a><span>Differences</span></h3><p><span>The only difference between these progressions is what happens at completion. When you complete a </span><code>Vow</code><span> you gain experience. However, when you complete quests or journeys you do not. Journeys and Quests are here to add more fictional context. As the rules suggest: Let the fiction drive this. Your Journey may be to </span><code>Sail to the Barrier Islands to Deliver a message to the leader Highcairn</code><span>. Completing this journey may get you a reward or increase your </span><code>bond</code><span> with the Highcairn settlement. Your quest may be to </span><code>find the mystical staff of Charrak</code><span> completing this quest would add this staff to your equipment and grant you whatever powers you envision it having.</span></p><hr /><h2><a name="assets" class="md-header-anchor"></a><span>Assets</span></h2><p><span>Assets screen allows you add assets to your character and make live changes to the asset card. If assets have tracks an interactive track will appear, with the same paper clip user experience found on the stats page. </span></p><p><span>There a few controls to this page. The leftmost drop down allows you to select and an asset to you character. Whereas the rightmost allows you to select and remove an asset from your character. </span></p><p><span>Once an asset is added you can input text into the Input Fields, modify tracks, upgrade the assets (but remember to spend your experience when you do)</span></p><hr /><h2><a name="asset-builder" class="md-header-anchor"></a><span>Asset Builder</span></h2><h3><a name="asset-creation" class="md-header-anchor"></a><span>Asset Creation</span></h3><p><span>The asset builder allows you to create, copy, edit and delete assets. </span></p><p><span>Assets with (Core) in the name cannot be edited or deleted. They are centrally maintained by the </span><strong><span>Data Management</span></strong><span> page. To update assets got to the </span><strong><span>Data Management</span></strong><span> page and press </span><strong><span>Update Core Assets</span></strong></p><p><span>To create a new Asset either fill out the various fields and press </span><strong><span>Save Asset</span></strong><span> or select an existing asset, make the required changes and press </span><strong><span>Save Asset.</span></strong><span> As you make changes, those changes will be reflect live on the card nearest the input form. Use this to ensure your content fits inside the card (so that it will display/print correctly).</span></p><p><strong><span>Assets MUST have a unique name</span></strong><span>. Therefore you will be unable to click </span><strong><span>Save Asset.</span></strong><span> unless a unique name is chosen.</span></p><h4><a name="buttons" class="md-header-anchor"></a><span>Buttons</span></h4><p><span>The buttons on this page are dynamic. A button will only appear if an action is allowed. For example, since you can't delete or modify a core asset. When a core asset is selected, the only button available to you is </span><code>Save as Copy</code><span>. However, this button only appears when the name is unique. Similarly, if you're creating a new asset, then the </span><code>Delete</code><span>, </span><code>Save as Copy</code><span> and </span><code>Save Changes</code><span> button are hidden. </span></p><p><span>There are four buttons in total: </span></p><figure><table><thead><tr><th><span>Button</span></th><th><span>Action</span></th><th><span>Rules</span></th></tr></thead><tbody><tr><td><span>Add Asset</span></td><td><span>Adds a new Asset</span></td><td><span>Is not shown if existing asset is selected</span><br><span>Name cannot be blank</span></td></tr><tr><td><span>Save Changes</span></td><td><span>Saves changes to an existing asset</span></td><td><span>Cannot add if Name is blank, </span><br><span>Can only save changes if the selected assets is not a core asset, </span><br><span>The asset Name cannot be different to the previous version. </span><br><span>At least one other field must be different to the previous version.</span></td></tr><tr><td><span>Save as a Copy</span></td><td><span>Creates a new Asset based on previous asset</span></td><td><span>Cannot add if Name is blank, </span><br><span>Cannot add asset if selected asset is core asset. </span><br><span>Cannot add if an asset exists with same name</span><br><span>cannot add if the asset is same as default asset (ie no changes)</span><br><span>cannot add if asset with same id already exists</span><br><span>add button is not shown when modifying an existing asset (copy shown instead)</span></td></tr><tr><td><span>Delete</span></td><td><span>Delete an Existing Asset</span></td><td><span>Existing asset cannot be a core asset</span><br><span>Cannot be an asset that is not yet created </span></td></tr></tbody></table></figure><p> </p><h3><a name="asset-deck" class="md-header-anchor"></a><span>Asset Deck</span></h3><p><span>At the bottom of the Asset Builder page, all the existing assets can be viewed on the page. At the top of the Asset Deck, there is a </span><code>Print Cards</code><span> button, which will modify the page and hide non essential visual elements to create an automated printable page. This process will also automatically generate card backs and place them in order so that they print correctly on double sided printers. (if you don't want card backs you can select those pages not to print in the printer options)</span></p><p> </p><blockquote><p><strong><span>KNOWN ISSUE:</span></strong><span> The way the page is generate the last page always generates an almost blank page. This should be removed in the printer settings. </span></p></blockquote><hr /><h2><a name="roll" class="md-header-anchor"></a><span>Roll</span></h2><p><span>The </span><code>Roll</code><span> button in the </span><code>Sidebar</code><span> takes you to a simple Dice Roller. This uses the same Dice Roller that drives the tables, but allows you to specify a series of dice and roll them. The dice roller in the </span><code>Footer</code><span> is functionally more useful to Ironsworn, but this was added for those that want to roll on some dice for whatever reason.</span></p><hr /><h2><a name="data-management" class="md-header-anchor"></a><span>Data Management</span></h2><p><span>This companion has a persistent state meaning that you can move between pages and your textboxes wont clear when you return. This is done through your browser's </span><code>local storage</code><span>. The </span><code>Data Management</code><span> page allows you to </span><code>Reset</code><span>, </span><code>Load</code><span> or </span><code>Save</code><span> your gamestate at any point.</span></p><h3><a name="saving-and-loading-the-game-state" class="md-header-anchor"></a><span>Saving and Loading the Game State</span></h3><p><span>The </span><code>Save</code><span> Button allows you to download your gamestate to a JSON file that you can store on your computer. If you not a programmer/unaware of what JSON is, don't worry. You don't need to know what the file is, except that it is a text file that contains all of the information to maintain your game save. It also allows your to move your game between browsers or computers.</span></p><p><span>JSON files can be loaded using the </span><code>Load</code><span> button to replace the current gamestate with the gamestate from the save file.</span></p><p><span>The </span><code>Reset</code><span> button wipes the gamestate back to defaults. This cannot be reversed so ensure you save your game before doing this.</span></p><h3><a name="updating-core-assets" class="md-header-anchor"></a><span>Updating Core Assets</span></h3><p><span>This platform makes use of RSEK's datasworn assets. If your assets fall behind RSEKs datasworn assets, you can use the update button to bring them up to date.</span></p><hr /><h2><a name="acknowledgements" class="md-header-anchor"></a><span>Acknowledgements</span></h2><p><span>The acknowledgement page provides the following information, but it is also here to make the documentation more complete.</span></p><h3><a name="license" class="md-header-anchor"></a><span>License</span></h3><p><span>To honour the labour of love created by Shawn, this companion is distributed (for free) under the same International Attribution-NonCommercial-ShareAlike 4.0 license as the official Ironsworn game. This companion could not exist without Shawn's work and since his game is distributed for free it seemed only right to do the same with the companion. The images, icons and maps used in this companion are provided from different authors (See Contributors below). Consequently, they are </span><strong><span>NOT</span></strong><span> covered by the same ShareAlike 4.0 license</span></p><p><a href='https://creativecommons.org/licenses/by/4.0/'><img src="https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/by-nc-sa.svg" referrerpolicy="no-referrer" alt="img"></a></p><blockquote><p><span>As part of the Attribution-NonCommercial-ShareAlike 4.0 license: any forks of this application must only build upon this page. No attributions may be taken away from this page without expressed written permission. This page must be included in any derivative works and may not be 'hidden' from view.</span></p></blockquote><h3><a name="contributors" class="md-header-anchor"></a><span>Contributors</span></h3><p><span>There were several content developers from the Ironsworn community that deserve an honourable mention here. During the creation of this companion the following people provided direct or indirect support to this app.</span></p><figure><table><thead><tr><th><span>Contributor</span></th><th><span>Contribution</span></th><th><span>URL</span></th></tr></thead><tbody><tr><td><span>SHAWN TOMKIN</span></td><td><span>Without Shawn's work none of this could be possible. When reading the game, you realise the care, effort and devotion that has gone in to creating this game and yet, the game is released as open-source under the creative commons 4.0. True Legend!</span></td><td><a href='https://www.ironswornrpg.com/' target='_blank' class='url'>https://www.ironswornrpg.com/</a></td></tr><tr><td><span>JOSIAH VAN EGMOND</span></td><td><span>The coloured version of the map was created by Josiah Van Egmond from Black Hawk Cartography (who make some amazing maps I might add). Additional thanks to Shawn Tomkin for providing me with explicit permission to use this image outside of the CC4.0 license.</span></td><td><a href='https://www.blackhawkcartography.com/' target='_blank' class='url'>https://www.blackhawkcartography.com/</a></td></tr><tr><td><span>RSEK</span></td><td><span>RSEK provided continued support and feedback throughout development and their Datasworn repository was used to build the core assets in this companion.</span></td><td><a href='https://github.com/rsek' target='_blank' class='url'>https://github.com/rsek</a></td></tr><tr><td><span>ERIC BRIGHT</span></td><td><span>To provide more variety and options when rolling on oracle tables, Eric's expanded oracles were used to populate the core oracle tables</span></td><td><a href='https://www.drivethrurpg.com/browse/pub/8584/Eric-Bright' target='_blank' class='url'>https://www.drivethrurpg.com/browse/pub/8584/Eric-Bright</a></td></tr><tr><td><span>DELAPOUITE & LORC</span></td><td><span>The icons used at Game-Icons.net are fundamental for achieving the Ironsworn look-and-feel. Therefore the icon selector for asset creation is driven by Game-Icons.net fonts.</span></td><td><a href='https://game-icons.net/' target='_blank' class='url'>https://game-icons.net/</a></td></tr><tr><td><span>KYLE KEMP</span></td><td><span>To integrate the Game-Icons.net icons into the application, Kyle's game-icons.net web-font was used, which was evidently inspired by FontAwesome.</span></td><td><a href='https://seiyria.com/gameicons-font/' target='_blank' class='url'>https://seiyria.com/gameicons-font/</a></td></tr><tr><td><span>GHOST225</span></td><td><span>Ghost provided continued support, feedback, feature suggestions and testing throughout the development</span></td><td><a href='https://github.com/ghost225' target='_blank' class='url'>https://github.com/ghost225</a></td></tr><tr><td><span>NOMADSOUL1</span></td><td><span>Credit goes to NOMADSOUL1 from freepik for the homepage image. The colour image was filtered to get the same look and feel as the Ironsworn book.</span></td><td><a href='https://www.freepik.com/nomadsoul1' target='_blank' class='url'>https://www.freepik.com/nomadsoul1</a></td></tr><tr><td><span>ONLINE WEB FONTS</span></td><td><span>Modesto font made from Online Web Fonts licensed by CC BY 3.0</span></td><td><a href='http://www.onlinewebfonts.com/'><span>http://www.onlinewebfonts.com</span></a></td></tr></tbody></table></figure><h3><a name="developer" class="md-header-anchor"></a><span>Developer</span></h3><p><span>This app was created by Graham Coulby to serve as a holistic digital companion for the Ironsworn tabletop RPG. This app was not designed to replace the official rules nor was it designed to supersede the work done by Shawn Tomkin.</span></p><p><a href='https://grahamcoulby.co.uk/'><img src="https://i.imgur.com/SIbTgYU.png" referrerpolicy="no-referrer" alt="img"></a></p></div>
</body>
</html>