diff --git a/RoloLudo.package/SfAsset.class/instance/abilitiesAsWikiText.st b/RoloLudo.package/SfAsset.class/instance/abilitiesAsWikiText.st
new file mode 100644
index 0000000..27f489c
--- /dev/null
+++ b/RoloLudo.package/SfAsset.class/instance/abilitiesAsWikiText.st
@@ -0,0 +1,10 @@
+converting
+abilitiesAsWikiText
+ | output |
+ output := '' writeStream.
+ output
+ nextPutAll: '
'; cr;
+ nextPutAll: (self abilitiesAsWikiTextFor: self currentAbilities);
+ nextPutAll: (self abilitiesAsWikiTextFor: self pendingAbilities);
+ nextPutAll: '
'.
+ ^ output contents
\ No newline at end of file
diff --git a/RoloLudo.package/SfAsset.class/instance/abilitiesAsWikiTextFor..st b/RoloLudo.package/SfAsset.class/instance/abilitiesAsWikiTextFor..st
new file mode 100644
index 0000000..41db40a
--- /dev/null
+++ b/RoloLudo.package/SfAsset.class/instance/abilitiesAsWikiTextFor..st
@@ -0,0 +1,12 @@
+utilities
+abilitiesAsWikiTextFor: abilitiesSubset
+
+ | aStream |
+ aStream := '' writeStream.
+ abilitiesSubset do: [:abi|
+ aStream
+ nextPutAll: ' ⬢'; cr;
+ nextPutAll: ' ';
+ nextPutAll: abi; cr;
+ nextPutAll: ' '; cr ].
+ ^ aStream contents
\ No newline at end of file
diff --git a/RoloLudo.package/SfAsset.class/instance/asTiddler.st b/RoloLudo.package/SfAsset.class/instance/asTiddler.st
new file mode 100644
index 0000000..55fdd48
--- /dev/null
+++ b/RoloLudo.package/SfAsset.class/instance/asTiddler.st
@@ -0,0 +1,6 @@
+converting
+asTiddler
+ ^ Tiddler new
+ title: self name;
+ tags: 'Starforged ' , self category;
+ text: self abilitiesAsWikiText
\ No newline at end of file
diff --git a/RoloLudo.package/SfAsset.class/instance/currentAbilities.st b/RoloLudo.package/SfAsset.class/instance/currentAbilities.st
new file mode 100644
index 0000000..10a004d
--- /dev/null
+++ b/RoloLudo.package/SfAsset.class/instance/currentAbilities.st
@@ -0,0 +1,3 @@
+converting
+currentAbilities
+ ^ self abilities at: 'enabled'
\ No newline at end of file
diff --git a/RoloLudo.package/SfAsset.class/instance/pendingAbilities.st b/RoloLudo.package/SfAsset.class/instance/pendingAbilities.st
new file mode 100644
index 0000000..8fd6f86
--- /dev/null
+++ b/RoloLudo.package/SfAsset.class/instance/pendingAbilities.st
@@ -0,0 +1,3 @@
+converting
+pendingAbilities
+ ^ self abilities at: 'disabled'
\ No newline at end of file
diff --git a/RoloLudo.package/SfAsset.class/instance/printOn..st b/RoloLudo.package/SfAsset.class/instance/printOn..st
new file mode 100644
index 0000000..b8efb34
--- /dev/null
+++ b/RoloLudo.package/SfAsset.class/instance/printOn..st
@@ -0,0 +1,6 @@
+printing
+printOn: aStream
+ super printOn: aStream.
+ aStream
+ nextPutAll: ' ( ' , self name , ' | ';
+ nextPutAll: self category, ' )'
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruth.class/README.md b/RoloLudo.package/SfTruth.class/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/RoloLudo.package/SfTruth.class/instance/character..st b/RoloLudo.package/SfTruth.class/instance/character..st
new file mode 100644
index 0000000..bfe1eaa
--- /dev/null
+++ b/RoloLudo.package/SfTruth.class/instance/character..st
@@ -0,0 +1,3 @@
+accessing
+character: optionsPhrase
+ character := optionsPhrase
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruth.class/instance/fromDictionary..st b/RoloLudo.package/SfTruth.class/instance/fromDictionary..st
new file mode 100644
index 0000000..feaa5b3
--- /dev/null
+++ b/RoloLudo.package/SfTruth.class/instance/fromDictionary..st
@@ -0,0 +1,6 @@
+accessing
+fromDictionary: aDictionary
+ name := aDictionary at: 'Name'.
+ character := aDictionary at: 'Character'.
+ (aDictionary at: 'Truths') collect: [:truth | self options add: ((SfTruthOption new fromDictionary: truth))].
+ self refineOptionIntervals.
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruth.class/instance/name..st b/RoloLudo.package/SfTruth.class/instance/name..st
new file mode 100644
index 0000000..db4c3d3
--- /dev/null
+++ b/RoloLudo.package/SfTruth.class/instance/name..st
@@ -0,0 +1,3 @@
+accessing
+name: aString
+ name := aString
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruth.class/instance/name.st b/RoloLudo.package/SfTruth.class/instance/name.st
new file mode 100644
index 0000000..40a2166
--- /dev/null
+++ b/RoloLudo.package/SfTruth.class/instance/name.st
@@ -0,0 +1,3 @@
+accessing
+name
+ ^ name
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruth.class/instance/options..st b/RoloLudo.package/SfTruth.class/instance/options..st
new file mode 100644
index 0000000..31f57f6
--- /dev/null
+++ b/RoloLudo.package/SfTruth.class/instance/options..st
@@ -0,0 +1,3 @@
+accessing
+options: anOrderedCollection
+ options := anOrderedCollection
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruth.class/instance/options.st b/RoloLudo.package/SfTruth.class/instance/options.st
new file mode 100644
index 0000000..c2cee13
--- /dev/null
+++ b/RoloLudo.package/SfTruth.class/instance/options.st
@@ -0,0 +1,3 @@
+accessing
+options
+ ^ options ifNil: [ options := OrderedCollection new ]
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruth.class/instance/printOn..st b/RoloLudo.package/SfTruth.class/instance/printOn..st
new file mode 100644
index 0000000..f319931
--- /dev/null
+++ b/RoloLudo.package/SfTruth.class/instance/printOn..st
@@ -0,0 +1,5 @@
+accessing
+printOn: aStream
+ super printOn: aStream.
+ aStream
+ nextPutAll: ' ( ', self name, ' ) '
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruth.class/instance/refineOptionIntervals.st b/RoloLudo.package/SfTruth.class/instance/refineOptionIntervals.st
new file mode 100644
index 0000000..de5e2fd
--- /dev/null
+++ b/RoloLudo.package/SfTruth.class/instance/refineOptionIntervals.st
@@ -0,0 +1,13 @@
+accessing
+refineOptionIntervals
+ | endings |
+ endings := self options collect: [:opt | opt chance ].
+ endings doWithIndex: [:end :i |
+
+ (i = 1)
+ ifTrue: [(self options at: i) chance: (1 to: end)]
+ ifFalse: [
+ (self options at: i) chance: (((endings at: (i-1)) + 1) to: (endings at: i))
+ ]
+
+ ].
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruth.class/properties.json b/RoloLudo.package/SfTruth.class/properties.json
new file mode 100644
index 0000000..445ab72
--- /dev/null
+++ b/RoloLudo.package/SfTruth.class/properties.json
@@ -0,0 +1,15 @@
+{
+ "commentStamp" : "",
+ "super" : "Object",
+ "category" : "RoloLudo",
+ "classinstvars" : [ ],
+ "pools" : [ ],
+ "classvars" : [ ],
+ "instvars" : [
+ "options",
+ "name",
+ "character"
+ ],
+ "name" : "SfTruth",
+ "type" : "normal"
+}
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthExamples.class/README.md b/RoloLudo.package/SfTruthExamples.class/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/RoloLudo.package/SfTruthExamples.class/instance/emptyTruth.st b/RoloLudo.package/SfTruthExamples.class/instance/emptyTruth.st
new file mode 100644
index 0000000..93a62e7
--- /dev/null
+++ b/RoloLudo.package/SfTruthExamples.class/instance/emptyTruth.st
@@ -0,0 +1,7 @@
+accessing
+emptyTruth
+
+ | testSfTruth |
+ testSfTruth := SfTruth new.
+ self assert: testSfTruth isEmpty.
+ ^ testSfTruth
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthExamples.class/properties.json b/RoloLudo.package/SfTruthExamples.class/properties.json
new file mode 100644
index 0000000..f46f759
--- /dev/null
+++ b/RoloLudo.package/SfTruthExamples.class/properties.json
@@ -0,0 +1,11 @@
+{
+ "commentStamp" : "",
+ "super" : "Object",
+ "category" : "RoloLudo",
+ "classinstvars" : [ ],
+ "pools" : [ ],
+ "classvars" : [ ],
+ "instvars" : [ ],
+ "name" : "SfTruthExamples",
+ "type" : "normal"
+}
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthOption.class/README.md b/RoloLudo.package/SfTruthOption.class/README.md
new file mode 100644
index 0000000..e69de29
diff --git a/RoloLudo.package/SfTruthOption.class/instance/brief..st b/RoloLudo.package/SfTruthOption.class/instance/brief..st
new file mode 100644
index 0000000..1d35bc3
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/instance/brief..st
@@ -0,0 +1,3 @@
+accessing
+brief: shortText
+ brief := shortText
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthOption.class/instance/brief.st b/RoloLudo.package/SfTruthOption.class/instance/brief.st
new file mode 100644
index 0000000..523e862
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/instance/brief.st
@@ -0,0 +1,3 @@
+accessing
+brief
+ ^ brief
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthOption.class/instance/chance..st b/RoloLudo.package/SfTruthOption.class/instance/chance..st
new file mode 100644
index 0000000..2a26768
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/instance/chance..st
@@ -0,0 +1,3 @@
+accessing
+chance: integerInterval
+ chance := integerInterval
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthOption.class/instance/chance.st b/RoloLudo.package/SfTruthOption.class/instance/chance.st
new file mode 100644
index 0000000..5cfcc0a
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/instance/chance.st
@@ -0,0 +1,3 @@
+accessing
+chance
+ ^ chance
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthOption.class/instance/details..st b/RoloLudo.package/SfTruthOption.class/instance/details..st
new file mode 100644
index 0000000..038bb36
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/instance/details..st
@@ -0,0 +1,3 @@
+accessing
+details: longerText
+ details := longerText
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthOption.class/instance/fromDictionary..st b/RoloLudo.package/SfTruthOption.class/instance/fromDictionary..st
new file mode 100644
index 0000000..2d4fc06
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/instance/fromDictionary..st
@@ -0,0 +1,9 @@
+accessing
+fromDictionary: aDictionary
+ brief := aDictionary at: 'Description'.
+ details := aDictionary at: 'Details'.
+ questStarter := aDictionary at: 'Quest Starter'.
+ subtable := aDictionary at: 'Table' ifAbsent: [ subtable := nil ].
+ "Because of JSON original data this only puts the end of the chance interval.
+ This needs to be refined at 'container' object SfTruth."
+ chance := aDictionary at: 'Chance'
diff --git a/RoloLudo.package/SfTruthOption.class/instance/printOn..st b/RoloLudo.package/SfTruthOption.class/instance/printOn..st
new file mode 100644
index 0000000..ef034db
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/instance/printOn..st
@@ -0,0 +1,6 @@
+accessing
+printOn: aStream
+ super printOn: aStream.
+ aStream
+ nextPutAll: ' ( ', self brief, ' )'
+
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthOption.class/instance/subtable..st b/RoloLudo.package/SfTruthOption.class/instance/subtable..st
new file mode 100644
index 0000000..75a316e
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/instance/subtable..st
@@ -0,0 +1,3 @@
+accessing
+subtable: aDictionary
+ subtable := aDictionary
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthOption.class/instance/subtable.st b/RoloLudo.package/SfTruthOption.class/instance/subtable.st
new file mode 100644
index 0000000..5994be2
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/instance/subtable.st
@@ -0,0 +1,3 @@
+accessing
+subtable
+ ^ subtable ifNil: [ subtable := OrderedDictionary new]
\ No newline at end of file
diff --git a/RoloLudo.package/SfTruthOption.class/properties.json b/RoloLudo.package/SfTruthOption.class/properties.json
new file mode 100644
index 0000000..3543c2e
--- /dev/null
+++ b/RoloLudo.package/SfTruthOption.class/properties.json
@@ -0,0 +1,17 @@
+{
+ "commentStamp" : "",
+ "super" : "Object",
+ "category" : "RoloLudo",
+ "classinstvars" : [ ],
+ "pools" : [ ],
+ "classvars" : [ ],
+ "instvars" : [
+ "brief",
+ "details",
+ "subtable",
+ "questStarter",
+ "chance"
+ ],
+ "name" : "SfTruthOption",
+ "type" : "normal"
+}
\ No newline at end of file