If you want to get a feel for what Sojour is capable of, the current manual can be viewed here.
Have Fun!
RobP

If you want to get a feel for what Sojour is capable of, the current manual can be viewed here.
Have Fun!
RobP
RPG Frequencies has taken the time to create a Discord Channel for Sojour to promote discussion!
You can join the discord here: https://discord.gg/DRnv3Qs5Ru
I’d like to thank him for the time and effort in setting this up!
RPG Frequencies also hosts a You-Tube channel covering all things Solo RPG here:
https://www.youtube.com/@RPGFrequencies
In the meantime,
Have Fun!
RobP
Sojour is a Windows based solo focused VTT that provides journals, maps, tokens and time management. A detailed run through is shown on this timestamped video.
It costs $10 USD. Once bought, Sojour is yours to keep. There are no subscription fees, online servers or DRM. All your data remains your data, stored on your computer. You will get free updates as they are produced.
If you have ever struggled trying to use a multiplayer VTT for solo gameplay, then you should give Sojour a look 🙂

This version contains a few fixes and enhancements centred around window positioning – if you pardon the pun.
First up, opened documents, document templates or external resources can now be centred on the primary monitor by right clicking on them in the tree-view and selecting this new option:
I have also fixed the early disk status dialog windows so that they are now centred correctly during Sojour’s load cycle.
The Webview2 component used for the PDFs also got upgraded to the latest version.
Finally, Sojour should now remember window positions correctly for setups with more than two monitors**.
** I only have access to two monitors to test against, so I’m coding this fix ‘blind’. It will be interesting to get feedback from customers using such environments!
That’s it for this release!
Have Fun!
RobP
This release is primarily about making Sojour play nicely with Cloud Drives.
It’s one of those releases where a huge amount of work has gone into it, but if I have done my job correctly, you won’t notice much of a difference between this version and the previous one.
I won’t go into too much detail as to how the new filing system works – that’s the video’s job which you can view at the end of this post.
What I will say is that this is the first iteration of this new and complex filing system. It has had around 2 weeks of testing, but alas, the hardware and cloud systems that I have access to is somewhat limited, which might impact the efficacy of the testing.
Before installing this update, I highly recommend that all customers backup their data first.
I’m hoping there won’t be any issues, but given the nature of what has been done, it wouldn’t surprise me.
If you do find issues, please contact me using the email at the front of the manual and we will work together to get it resolved!
Other changes included the incorporation of a new enterprise level logging system:
Logging got added to facilitate the testing of the new filing system. It’s needed because so much now happens behind the scenes that this is the only reliable way to see what’s going on.
These log files are rolling log files, so they will never grow out of control. Once they reach their maximum size, the oldest entries are removed to create enough space for the new ones.
The above log is the standard log, but the system also outputs a much more detailed developers log for when Sojour is run from Visual Studio.
These logs are now included in Sojour’s exception windows if, heaven forbid, Sojour crashes:
This should enable me to more easily fault find customer issues.
With the inclusion of the robust filing system and logging, I’m starting to feel that Sojour has crossed that boundary from a bedroom project to a full-on enterprise application!
What else got changed?
There is now a new splash screen:
This was added because the new filing system is now asynchronous. This results in the user interface loading up its various elements in real-time, which is somewhat disconcerting. The splash screen was added to hide this behaviour.
The rendering loop of Ionian – Sojour’s graphics engine also got re-written to take into account the fact that asynchronous file operations can make Sojour look less busy than it actually is. This can result in the graphics engine unintentionally hogging all the resources as it thinks Sojour is idling.
Various additional bugs were also fixed with the character health bars. These were all extreme corner cases. I only found these issues thanks to the new automated integration tests I wrote for this sub-system:
These tests should help prevent a re-occurrence of the emergency fixes that plagued the 1.5 releases.
The other big fix that got included in this release, was in and around how Sojour remembers its windows positions in a multi-monitor environment. There was a bug that prevented the windows being restored to the correct monitors. This should now be fixed – I say should, because the most monitors I could test this on was just two.
The video below provides a much more in depth explanation with regard to the new filing system. I’d encourage all customers to watch it!
That’s it for this release!
Have Fun!
RobP
Sorry for the continued hassles!
This is yet another hot fix to fix yet another health bar issue.
In this case, the fix was mostly focused around auto-dice rolled NPC characteristics – the ones that auto-roll when an NPC is dropped on the map.
Also fixed another bug in and around index calculations for characteristic bars too.
Why so many hotfixes?
v1.5.x.x includes additional code to do really aggressive caching of the health-bar graphics. The intent is to vastly reduce the number of times the health-bar graphics need to be recalculated.
Alas, the caching was way too aggressive and it wasn’t updating the health bars when it really should be!
There is most definitely a lesson to be learned here and characteristics are now going to get targeted for some new automated integration tests to try and reduce this risk in the future.
All customers on v1.5.x.x should upgrade!
Sorry for the constant updates!
Have Fun!
RobP
Howdy folks!
This tiny release fixes an issue where tokens dragged off of the token palette to the map were not showing their health-bars.
I recommend that all 1.5.X.X users switch to 1.5.3.0 – this issue does not affect 1.4.x.x versions.
You can download from the usual place in your Drive-Thru RPG library 🙂
Have fun!
RobP
I don’t normally like splash screens – but had to reluctantly add one to Sojour as its new disk filing system is now asynchronous.
Without a splash screen you can now see the UI elements populating in real-time as each loading process completes. I think this looks a wee bit unprofessional – hence the splash screen to hide the UI updates.
The older synchronous system – which you folks have – used to hide the UI updates simply because Sojour was blocking the main UI thread whilst performing the loading of the data.
Why the change to Sojour’s loading mechanism?
Cloud Drives.
It’s not just the loading mechanism either, everything file based has been overhauled in Sojour to allow it to play well with Cloud Drives such as One-Drive and Google-Drive.
This has been a huge undertaking, but I am now very pleased with the results.
For those that don’t know, Cloud Drives like to perform random management tasks on your files. Whilst they are doing this, they will lock your files at random. These file locks result in Windows throwing errors if Sojour ever tries to touch them – which can be quite often.
To get around this I have built a new filing system for Sojour which includes a file synchronisation manager to deal with the Cloud Drives various antics.
The code changes are huge:
The new synchronisation system even resulted in me having to redesign Sojour’s graphics engine’s rendering loop – not a trivial task, but more on that when I produce a release video for this functionality.
So where are we with this?
The principal coding is done and the initial testing looks positive. However, these code changes touch and affect everything in Sojour – so there is a lot more testing to do before I can release it.
If we are very lucky we could be looking at a release in two weeks time, maybe earlier. It all depends if the testing discovers anything untoward.
Whilst we wait for this update, I highly recommend that users whose data directories are on a Cloud Drive move them to a local drive using Sojour’s file manager (double click the root node – the Sojour node in the assets browser):
That’s it for this update! Hopefully you will hear from me in the next week or so!
Have Fun!
RobP
I didn’t expect to be posting so soon!
I have just released v1.5.2.0 which fixes an issue where pre-1.5.0.0 rulesets that have no characteristics or character sets defined would cause v1.5.0.0 to hang during loading.
It is recommended that all v.1.5.x.0 users upgrade to this version.
I only had one report for this issue. I suspect that the reason for the singular report is that by default Sojour provides one characteristic for a brand new ruleset – thus preventing the issue from popping up.
I’d like to thank the reporting customer for their patience and cooperation in helping to identify and fix this issue! 🙂
In other news, work is now quite advanced on Sojour’s new file sync manager which will make Sojour a lot more fault tolerant when its data folder is pointed at a cloud drive like Google Drive or One Drive.
Hopefully there will be a release either this week or the next.
Have fun!
RobP
This is a minor release that addresses two issues:
As for the future, I have been getting a few reports about issues when Sojour’s data directory is set to a ‘Cloud’ drive such as One-Drive or Google-Drive.
The core problem is that cloud drives will occasionally take charge of various files, either to synchronise them or move them around. Once they have a file locked, there is nothing Sojour can do about it. This can lead to Sojour crashing out as it tries to write data to a file it thinks it has sole ownership of.
For the moment, I would recommend not pointing Sojour’s data directory at a cloud drive.
My intent is to work out a technical solution for this.
I already have one idea, and that is some kind of file synchronisation manager which will let Sojour simply retry file tasks at a future point in time if the files are locked.
I have been through the code and so far I know it will be possible, but non-trivial.
This piece of functionality has pipped its way to the top of my priorities list as I want my customers to be able to use their cloud drives for Sojour’s data
In the meantime
Have Fun!
RobP

This is the first release from my new build and release system (I migrated from JIRA/Confluence/TeamCity to Azure DevOps earlier in the year). Hopefully, there will be no issues, but this is something to be aware of!

Before we get to the list of changes, I’d like to point out that I’m now working in iterative sprints where the stories are a lot smaller than they used to be. The upshot is that it is no longer worth publishing the story numbers like I used to do with the old RPG-XXX format.
The reason for this is that the number of stories per release has increased dramatically. This release alone as over 30 of them. I’m pretty sure you don’t want to know about all the details!
What are the changes?
At a high level, they can be broken down as follows:
That’s it for this release. Please do get in touch if there are any issues (email is in the front of the manual). I have done a lot of testing, but I’m a little on edge as this is my new development environment’s first real public release!
Here is a video covering off the main features!
Have Fun!
RobP
I’d like to take this opportunity to wish everyone a Merry Christmas and Happy New Year!
I’m currently targeting a new release for 4th January which will contain external resources and a few other bits and pieces.
The external resources functionality is coming on in leaps and bounds and we can now target them to external windows or tabbed controls. Sojour remembers external window sizes and positions from instance to instance too.
Here is a screenshot from the latest development build:
That’s it for this year. I’m hoping to post again early in the New Year with the new release!
Have Fun!
RobP