-
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 🙂

-
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
-
Here is a link to a preview video of the updated External Resources system. Hopefully you good folk find it much improved!
Have Fun!
RobP
-

This was not a post I was expecting to write.
A few weeks back my build server got hacked by ransomware, this is why there has been a delay in releasing the External Resources functionality.
In terms of your customer data, there is no danger at all. I don’t store any customer data whatsoever – that’s what my publisher does.
In terms of Sojour, it crippled the automated development environment that has resulted in the loss the following systems:
Confluence: My Wiki. This had a lot of information on architecture and many How-To-Do articles written from the experience gained of writing Sojour & Ancient Armies.
JIRA: Stories and Task Management. This stored all of my stories and tasks. In Sojour’s updates you would have seen these as RPG-XXXXX. These are now all gone and I will discuss the implications later.
Team City: Automated Builds. This system ran Sojour’s automated builds. It carried out a lot of tasks fully autonomously. These tasks ranged from automatic versioning, running tests, code obfuscation and the production of Sojour’s installers.
Other ancillary development systems were hit too.
How did it happen?
Most people are probably thinking that I visited a dodgy web site, or that I clicked a dodgy link or perhaps that I clicked or opened something in a dodgy email. But, none of these things happened.
The root cause of the security breach was simply an out of date Windows 10 installation, a weak implementation of the RDP protocol, and vulnerabilities in older versions of my development tools.
I had basically gone to visit the parents over a weekend, came back, and then noticed that I couldn’t raise any of my development systems through the browser.
I then RDP’d into the build server and at that point I realised something was very wrong.
The services running the various systems had disappeared and within each critical directory I found readme files like this one:
To re-iterate, I did nothing active to allow this hack. It was a lapse on my part with regard to keeping my systems up to date. In the case of the build server, it was a tiny computer that was out of sight and out of mind. It just worked, so I had no cause to ever visit it – until this incident that is.
The only real oddity is that LockBit don’t normally target small businesses like mine, they tend to go after the much larger corporate entities. I guess that when they see an easy target like this, they just go for it.
Obviously, this has massively impacted Sojour as a project. The only saving grace is that the source code and its history were untouched.
I’ve been spending the last few weeks trying to get a development environment up and running and re-securing all my current systems.
In the end, after many false starts, I decided to move everything into the Cloud using Microsoft’s Azure DevOps system. This provides me with a fully integrated development environment and a hopefully more secure one when compared to my home-based one.
Getting Azure DevOps to perform everything that my previous system could do took a lot of time and effort. In fact, I had taken for granted just how much my previous system did for me, until this migration that is!
After a lot of time spent, I can now generate versioned installer releases much like with my previous system:

My first DevOps releases (pre-merge) Every cloud has a silver lining. In this case, it’s the way that I have configured Azure DevOps. It provides me with a lot more power and flexibility over my previous system and as a bonus it allows me to work remotely.
There is still a little more tweaking to do, but the system is pretty much there, which means that I can soon get back to software development again!
In terms of implications going forward, the main issue is that I have now lost all my stories – this means that any feature requests will be lost. If you had any, please let me know and I will add them to the new development system (there is an email address at the front of the manual or alternatively use Sojour’s Discord).
The other more minor issue is that without my Wiki, I’m going to have to relearn many of my processes, such as ‘How do I create Sojour’s manual?’. This will slow things down, but as I rediscover my old processes, they will get re-documented within Azure DevOps.
Apologies for the hack – that was on me for not taking security seriously enough.
I guess that the morale of the story is that if you have unpatched operating systems, such as Windows 10 (which is now out of support), make sure you switch to a supported operating system and that you keep it up to date. Otherwise, this could easily happen to you too!
Have Fun!
RobP
-
Howdy Folk!
This is post to give you a preview for what’s coming to Sojour.
The screenshots and video are from a very early build and there is still much more to do, but, hopefully you good folk will see some value in it.
Firstly, what do I mean by external resource?
An external resource is any web based resource.
Right now the system is coded to deal with just web pages, but in the future it will support direct API communications for the more advanced users here.
I guess the next question is, what can I do with external resources?
At their most basic level you will be able to embed web pages into Sojour as an asset:

TravellerMap.com embedded within Sojour! External resources have several advantages over using a web browser.
Firstly, the resource is easier to find and you don’t need yet-another-window open to use that resource.
Secondly, if the resource tab is left open and Sojour is closed down and restarted, it will reload that resource from exactly where you left off. In the above example it would remember your last map position.
Ok, we have established that we can embedded external resources into Sojour, but can it do anything else?
Yes. Yes it can!
Sojour’s external resources can have one or more triggers added to them. These triggers allow functionality within Sojour to be triggered based on various criteria from the external resource.
For example, if I wanted to integrate a third party dice roller, say DDDice, I could add a trigger to look out for when a dice is rolled in DDDice:

The trigger editor for external resources. This is DDDice being wired into Sojour! More triggers can be added or the existing ones edited by using the assets browser:
Now that DDDice is wired in, I can roll dice in it and have them trigger table rolls in Sojour automatically!

DDDice fully integrated! Make the roll and see the result in Sojour! Sojour will initially support two types of trigger: A table roll trigger and a journal injection trigger. There are plans for a further 6 trigger types, but the implementation of these is further off.
Obviously, DDDice is just an example. This system can be used to integrate any web resource that uses HTTP/S! 😎
You can see external resources in action by watching the You-Tube video below:
That’s it for this post!
Please bear in mind that it’s an early preview of a very early iteration of brand new functionality. This will only get better as we go down the road!
Have Fun!
RobP
-
If all goes well, I should have a video to show you good folk this weekend.
I’m pretty sure you will be very impressed with what Sojour can now do! 😎
Remember ‘Keep Mum!’
Have Fun
RobP
-
Work is underway for a new feature.
I think you might like it 😎
Have Fun!
RobP
-
If the last post was unexpected, this one is really unexpected!
This hotfix addresses this issue:
RPG-470 [Fix]: This fixes an issue with the conversations system crashing if there are no NPC’s on the journals. The system tries to focus on the first NPC there, and fails because there isn’t one, which results in a crash. This is now fixed!
Once again, apologies for the hassles! Hopefully this is the last hotfix!
Have Fun!
RobP
-
This is an unexpected post!
It turns out that the new save system was having issues on completely fresh installs – notably, it was complaining about missing files.
RPG-469 [Fix]: This fixes a bug where Sojour will complain if you attempt to save on a completely clean installation.
This issue shouldn’t affect existing users, just new installations.
Either way I recommend all users upgrade.
Have Fun!
RobP
-
Sojour 1.4.0.0 has finally been released!
This release contains many enhancements, though the primary one is a much more robust save and loading system, which should make your data a lot safer.
Changes to 1.4.0.0:
RPG-465 [Upgrade]: Upgraded Sojour to latest .net framework version – 4.8.1. In the rare case that your Windows system does not have this, you will need to pop over to https://dotnet.microsoft.com/en-us/download/dotnet-framework/net481 and download the runtime.
RPG-462 [Enhancement]: A new global setting has been added for event tables to toggle on or off the injection of the table name into journals.
RPG-461 [Enhancement ]: The main character toolbar and NPC toolbars now include a horizontal scroll bar that will appear when there are too many characters/npcs to display at once. Hovering over a character/npc on a map will scroll the character/npc into focus on the relevant toolbar.
RPG-460 [Enhancement]: Event tables can now be hidden from journals.
RPG-455 [Upgrade]: The WebView component has been upgraded to the latest version.
RPG-453 [Enhancement]: Sojour now has a new Save button that is supported by a very robust saving system. This system automatically creates backups and it also verifies a new file’s data before overwriting the original. In the event that the original is corrupted, Sojour will offer the user a chance to use the backup instead.
RPG-452 [Fix]: Ctrl-Clicking tokens and characters on the map now toggles conversations again. (This was broken in the big UI refactor release)
RPG-451 [Enhancement]: Sojour now compresses all images imported into it which should make the system more stable. It defaults to reducing an image’s in-memory size down to 25% of its original size! This setting can be altered under settings. In addition, Sojour now performs backups prior to all map imports to protect your data in the event of a Windows GDI crash.
RPG-450 [Fix]: Changing a character’s character sheet should now update the preview pane immediately.
RPG-449 [Fix]: The scaling token can now be moved on the map again! Also reduced the minimum size a token can be from 1 metre to 10 cms.
RPG-448 [Enhancement]: The find dialog for journals now incorporates a find previous button.
RPG-447 [Fix]: Sojour no longer assumes a mouse and keyboard are connected to the computer.
RPG-446 [Enhancement]: Users can now use physical dice when rolling on Sojour’s tables. There is a new field to allow the user to enter their dice roll with modifiers.
RPG-443 [Enhancement]: Dice expressions can now be included in table results to allow for some variability in numbers. Sojour also supports the use of dice expressions for table re-directs too.
In addition, there are many other undocumented fixes that got put in as a result of testing the enhancements above.
More information on the release can be viewed in the preview video which can be found here:
A few additional features were snuck into Sojour after the preview video was published. I’ll quickly go over these below.
First up, the main character toolbar got the same enhancements as the new NPC toolbar:
This means that a new scroll bar is included for when the number of characters overflow the space available. In addition, highlighting a character on the map now auto-scrolls the toolbar to focus on that character.
Event tables can now be hidden from the journal using a new toggle button:
This new button will allow users to hide sub tables from showing in the journal drop downs (unless they want them to show).
You also get a new global option to hide or show table names when events are injected into journals:
The above setting is on by default.
When switched on, journal table entries are pre-fixed with the table name:
The same journal entry with this setting turned off:
That’s it for this post!
I hope you all have a lot of fun with 1.4.0.0 😊
RobP


















