Journals are basically a massive pain in the ass the first time you do it, after that it's ezpz.
There are a lot of steps. I'll break them down as best I can here:
1.) Take the Mods/Story/Journal folder and copy it to your same directory in your mod.
2.) Get notepad++ if you don't have it, it's free.
3.) Use notepad++ to open Quest_Prototypes.lsx in that folder, go ahead and clear it all out.
4.) Copy this into that file you just cleared out:
<?xml version="1.0" encoding="UTF-8" ?>
<save>
<region id="Quests">
<node id="root">
<children>
<node id ="Quest">
<attribute id="QuestID" value="Undead" type="22"/>
<attribute id="MainQuest" value="1" type="19"/>
<attribute id="QuestTitle" value="UndeadQuest_Title" type="22"/>
<children>
<node id ="QuestState">
<attribute id="Status" value="Update1" type="22"/>
<attribute id="Description" value="UndeadQuest1" type="22"/>
<attribute id="Rewards" value="" type="22"/>
<attribute id="Marker" value="" type="22"/>
<attribute id="Achievement" value="quest1" type="22"/>
<attribute id="Act" value="" type="4"/>
<attribute id="Gain" value="" type="4"/>
<attribute id="ReputationGain" value="" type="4"/>
</node>
</children>
</node>
</children>
</node>
</region>
</save>
The text above has some of my own settings in it, but the lines you'll want to change to your own liking are in BOLD.
Restart the editor every time after making changes to this file.
5.) Open the TranslatedStringKey Editor and add two new keys:
a.)Whatever you put for your value on this line:
<attribute id="QuestTitle" value="UndeadQuest_Title" type="22"/>
b.)Whatever you put for your value on this line:
<attribute id="Description" value="UndeadQuest1" type="22"/>
In the Content sections of the TranslatedStringKey for the title - put your quest title. Something simple. For the content of the second new key (UndeadQuest1 in my case), put what you want the journal to describe to the player.
6.)Somewhere in your story editor script when the player gets the quest, you're going to want to add the following lines:
QuestAdd("Undead");
QuestUpdate("Undead","Update1");
Those are pretty self explanatory, but the first one works off of THIS line in the quest_prototype file:
<node id ="Quest">
<attribute id="QuestID"
value="Undead" type="22"/>
The second one works off of this line:
<node id ="QuestState">
<attribute id="Status" value="Update1" type="22"/>
This is going to take a lot of trial and error, once you get one working though, the rest will come easy.
Be careful editing the quest_Prototype file, one tiny error will make every journal entry in your game stop working.
Edit
Add one
<node id ="QuestState">
<attribute id="Status" value="Update1" type="22"/>
<attribute id="Description" value="UndeadQuest1" type="22"/>
<attribute id="Rewards" value="" type="22"/>
<attribute id="Marker" value="" type="22"/>
<attribute id="Achievement" value="quest1" type="22"/>
<attribute id="Act" value="" type="4"/>
<attribute id="Gain" value="" type="4"/>
<attribute id="ReputationGain" value="" type="4"/>
</node>
for each update to a quest, change Update1 to 2,3,4, so on. Each should point to a different TranslatedString (UndeadQuest1, 2, 3, etc) in the key editor.
When you're done with one quest, use
<node id ="Quest">
<attribute id="QuestID" value="Undead" type="22"/>
<attribute id="MainQuest" value="1" type="19"/>
<attribute id="QuestTitle" value="UndeadQuest_Title" type="22"/>
<children>
to add other ones.