Thursday 22 August 2019

BattleScribe 2.03.00 Released!

BattleScribe 2.03.00 brings another batch of data format changes and quality of life improvements for data authors. Hopefully these should help authors reduce the size of their data files, and eliminate some unneeded complexity.

Mobile and desktop users of Roster Editor will still need to update to make use of data files created in the new version, though you won't see any major changes... Yet. This release provides the foundation for an upcoming feature that you might like quite a bit...

Data Editor
  • Categories on Selection Entries can be added and removed using Modifiers.
  • Categories can be set to primary or unset from primary using Modifiers which should make it much easier to move Entries between Categories without using multiple show/hide Modifiers.
  • Costs can now be added directly to Entry Links meaning you can set costs for linked items directly, rather than using complex Modifiers to adjust costs after the fact.
  • Catalogue Links can now indicate whether or not root Selection Entries should be imported. Shared items will still be imported, meaning you have access to shared items without cluttering your Catalogue with unneeded Selection Entries.
  • Root Selection Entries and Entry Links can indicate whether they are imported if their Catalogue is imported.
You can discuss this release on the Reddit thread.

Tuesday 23 April 2019

BattleScribe 2.02.01 Released!

Update: There was a bug in 2.02.00 that caused rosters to be deleted as "corrupted" in some cases (oops...). This has now been fixed in version 2.02.01. The update is now available on desktop and is rolling out on Android. It will become available for iOS as soon as it's approved by Apple. I have requested an expedited review from Apple so hopefully it won't be long. Apologies for the inconvenience.

BattleScribe 2.02.01 is here!

This update brings some data format changes and additions that give data authors more tools and flexibility, and improves quality of life. While this update mainly focuses on data editing, mobile and desktop users of the Roster Editor should notice some nice speed and memory improvements when creating or loading rosters. Nice!

Note: BattleScribe 2.02.00 includes significant data format changes. Loading rosters and updating data may take longer to begin with as your old data files are upgraded. It is highly recommended that you update BattleScribe on all your computers and devices.

All Platforms
  • Significant memory and performance improvements when creating or loading rosters. This should help prevent some memory related crashes when using large data files (I'm looking at you Legiones Astartes), however this will still depend on your device. Your mileage may vary.

Data Editor
  • Catalogues can now be imported into other Catalogues using Catalogue Link elements. This allows sharing of elements between multiple Catalogues.
  • Catalogues can be marked as a "library." Library Catalogues are only used for importing into other Catalogues. They are not listed when creating a Roster.
  • New "Primary Catalogue" query scope allows Conditions to check whether an Entry has been imported into a particular Catalogue.
  • Entry Links can now contain child Selection Entries, Selection Entry Groups and Entry Links.
  • New Modifier Group element which can contain multiple Modifiers and Modifier Groups which are all applied together according to a single set of Conditions.
  • New Info Group element which can contain multiple Rules and Profiles along with Modifiers for the entire Group.
  • New Publication root element replaces the book field. Child elements select a publication via a drop-down.
  • All "Entry" elements can now contain Rules, Profiles, Info Groups and Info Links for improved consistency.
  • Characteristic values are now XML text elements meaning formatting should work properly.
  • Unneeded empty XML tags are no longer written to files when saving.
You can discuss this release on the Reddit thread.

Friday 16 June 2017

BattleScribe 2.01 Released!

The new edition of a certain GrimDark game system is almost upon us. BattleScribe has your back.

Some Important Notes
  1. The latest version on all platforms is 2.01.02. Make sure you are up to date!
  2. Version 2.01 involves a data format change. This means your old data files need to be upgraded, which will take some extra time when loading a file for the first time.
  3. If you have any trouble with the update (or just want to skip the data file upgrade time!), make sure you delete and re-download your data!
  4. Any questions? Feel free to post on the BattleScribe subreddit.
  5. If you like playing games in the grim darkness of the far future, I suggest you check Manage Data...

The Road to 2.01

BattleScribe 2.00 was released in November 2016 to much fanfare with a lot of problems. Performance was poor, and there were quite a few bugs and crashes lurking in the dark corners. Since then there have been a large number of updates, bringing BattleScribe 2.00 back to where it needs to be: fast, stable and powerful. There's even been some new features and improvements along the way!

There is always more to do of course. Loading times on mobile can still be long (particularly on older devices), and there is ample room for more performance optimisations. Rest assured I will continue to work on BattleScribe; hunting bugs, improving performance and adding new features. Make sure you keep the app (and your data) up to date!

I really hope you enjoy the new version of BattleScribe. It's taken a long time to get here, but I think it's been worth it. If you like it, I encourage you to tell your friends, share this post, leave an app store review or even become a supporter!

So What's New?

Since I've not posted here for a while, this list will contain the main changes and updates since 2.00 was released. For more details, take a look at "What's New" within the app itself.
  • File format and engine changes to support the new edition of Warhammer 40,000. These changes introduce a new layer of power and flexibility for all data authors.
  • Huge overhaul of the Manage Data screen/dialog - you can now add data directly from the app without having to go to an external website.
  • Roster sharing improvements. You can quickly share your rosters to Facebook, Reddit, forums and more with sensible default formatting.
  • Printing on mobile! Finally...
  • [Supporter] Quickview feature allows you to quickly open rosters for viewing without loading all the data.
  • Output format improvements and more formatting options.
  • Massive performance improvements when editing a roster (adding or removing selections etc).
  • Performance improvements when loading rosters. There's still more to do here of course!
  • Performance and reliability improvements when using Dropbox on mobile.
  • Many, many (many!) crashes fixed and bugs squished.

Data Editor Changes in 2.01
  • Category Entries are now root elements in data files - they are no longer added directly to Force Entries.
  • Link Category Entries to Force Entries using the new Category Link element.
  • Any Selection Entry element (not just root elements!) can have multiple Categories.
  • Selection Entry Groups can now have Categories too.
  • You can reference Categories from Conditions, giving a huge boost in flexibility.

Friday 18 November 2016

BattleScribe 2.0 Released!

Current Situation

[As of writing, the current versions are as follows. Android: 2.00.12. iOS: 2.00.07. Desktop: 2.00.05]

As you're probably aware, BattleScribe 2.0 launched about two weeks ago, and we've had a bit of a shaky start. There are always going to be some issues with any big release, but this is no excuse for the series of nasty bugs and crashes, particularly on Android. This was my fault entirely, and I apologise for any issues or inconvenience you may have experienced over the last week or so.

That said, we are finally out of the woods: all known major issues are resolved and performance has improved considerably. The data community has also been hard at work updating their files for BattleScribe 2.0, so make sure you update your data regularly.

This post has been a little late as my focus has obviously been elsewhere!

If you are having trouble, I have posted solutions to problems and answers to common questions separately as FAQs, rather than making this post any longer than it needs to be. I encourage you to read and share them:

Coming Up

There is always more work to do of course. Currently Dropbox synchronisation on mobile can be pretty slow. I am currently working on a new approach to Dropbox file synchronisation. Consider disconnecting Dropbox for the time-being to improve loading times considerably. I will also be constantly working on fixing any existing bugs as and when I identify them. Rest assured I am on the case. Expect frequent updates - make sure you keep the app up to date for the latest fixes.

With that all said, what actually is BattleScribe 2.0, and what's changed? Brace yourself.

If It Ain't Broke, Don't Fix It

This is a phrase I wholeheartedly agree with. But there is a qualifier: "If it ain't broke". While BattleScribe 1.x wasn't exactly "broke", it had certainly hit the limits of what it was capable of without major rework. It was bursting at the seams.

The wargaming scene is an ever evolving and expanding beast, whether you are leading a small group of gang members through wrecked city streets or recreating entire historical battles with a cast of thousands. BattleScribe has always striven to be a universal tool that covers all situations, and must have the room to expand to support future developments in this great hobby of ours.

When I first started writing BattleScribe back in 2010, the wargaming landscape was a simpler place. Since then it has exploded in scope and complexity, and the original assumptions underpinning BattleScribe's design no longer hold true. The data community have had to work harder and harder to find elaborate ways to work around BattleScribe's limitations when creating their files.

It was time to rethink things.

2.0 Is Born

Some time in early 2015, I began work on what was then going to be version 1.16.00. The core aim was to overhaul the data format and core systems in order to expand the scope of what BattleScribe was capable of supporting and address the needs of the data community. The data editing tools would be reworked to support this.

It soon became clear however, that the nature of the changes required to achieve these aims would have wide-ranging knock-on effects throughout the app. It would not be possible to update individual systems in isolation. What was needed was a step back to rethink the overall design of the app as a whole.

This new holistic approach provided the opportunity to review every aspect of BattleScribe. It was time to brush away the cobwebs left by years of incremental updates, and work to refashion the app into a platform that can expand and evolve with the wargaming world for years to come.

This was going to be BattleScribe 2.0.

Sounds Neat. So What's Changed?

Almost every line of code in all versions of the app has been rewritten, reorganised, refactored or removed. All major systems have been redesigned and rebuilt. BattleScribe is reborn. But what does this mean for you?

When it comes to creating army lists, not much has changed on the surface. The user interface on all platforms is pretty much the same as it ever was in terms of placement of buttons, navigation and so on. If it ain't broke, don't fix it, right? The mobile versions have had a new coat of paint and now look and behave as modern mobile apps should.

There is one new feature for BattleScribe supporters: Quickview. This is the ability to open rosters for viewing without loading all the data files. Other than this, the first priority was to ensure that all features from the previous version are present and correct. Going forward, you can expect new features and functionality, expanding on the groundwork laid down in BattleScribe 2.0.

The changes for data authors on the other hand, are huge and wide-ranging. The data format and editing tools have been redesigned to improve ease of use, efficiency and quality of life. This should benefit everyone by way of higher quality data files, improved support for a wider array of game systems, and faster data updates.

I encourage anyone interested in data authoring to try the new Data Editor! You should find it a much more powerful, intuitive and pleasant experience.

Android and iOS
  • User interface redesigned.
  • New roster creation flow so it's not all crammed onto one screen.
  • Supporter: Quickview rosters without needing to load the data files.
  • Supporter: Redesigned dice tool.

  • Added keyboard shortcuts for new, save and save as.
  • Supporter: Quickview rosters without needing to load the data files.
  • Old Game System Editor and Catalogue Editor tools are now combined into one Data Editor. which handles both types of file.
  • Data Editor: Redesigned edit panel is consistent for different element types.
  • Data Editor: Added keyboard shortcuts for cut, copy and paste.
  • Data Editor: Added right click option to "follow link".

Engine & Data Format
  • Game System and Catalogue file formats are unified. All data elements (e.g. Forces, Entries, Rules, Profiles...) can now exist in either file type.
  • Elements in a Game System file are available in a Catalogue.
  • Shared elements in a Game System can be linked to from any Catalogue files, so global elements can be shared by all Catalogues.
  • Entry elements (ForceEntry, CategoryEntry, SelectionEntry, SelectionGroupEntry...) are unified and work in a consistent way.
  • Info elements (Profile, Rule...) are unified and work in a consistent way.
  • New CostType element so you can represent games with multiple "currencies". 
  • The CostType element can be used to name "currencies" - you are no longer restricted to just "points".
  • Entry element min/max fields are replaced by a Constraint query element so you only need to apply constraints that actually matter (or omit them entirely).
  • Modifers can be used to change more fields and work in a consistent way between the different elements they are attached to.
  • Modifier repeat fields are replaced by a Repeat query element, so modifiers can have multiple repeats.
  • Query elements (Condition, Repeat, Constraint...) have been unified and all work in a consistent and logical way.
  • Query elements are much more powerful and customizable, with more control over scope and target elements.
  • Link elements can have the same Modifiers that their target can have.
  • More elements can now have "book" fields (book, page...).
  • Probably more I can't remember...

Sunday 31 July 2016

BattleScribe 2.0 is Coming

I wanted to give everyone a heads up and get some feedback. It’s a bit of a long post, so hold on to your hats! Please have a read through and let me know what you think - good or bad. You can leave your comments on Reddit.

BattleScribe 2.0 is an (almost) complete re-write of the app, and has been my main focus for the last year or so. The target for the first release is to have all the same features (Pro or otherwise) as before - so there won’t be any big new features right away. That said, the user interface on mobile has had a huge facelift and looks much nicer now.

The main changes are “under the hood”, along with a huge overhaul of the data file format and editing tools. This should make the lives of data authors much easier, leading to better data files for us all. The re-write of the app also leaves it in a much better state going forward, making it much easier for me to build upon with new features and updates in future.

Suffice to say, this has been a huge effort. BattleScribe’s core systems have been completely rebuilt to enable a brighter future for the app and it’s ecosystem for years to come. If you’d like to give it a go, you can find the Alpha version here:

Now the hard part. BattleScribe 2.0 is going to be a “new” app, separate from the old one, and will require you to pay again to unlock Pro features on all the various platforms. This update truly deserves the “2.0” name though. It really is a completely new beast. Of course this brings with it some issues.
  1. Existing Pro users who’ve already paid for the old version may well be upset, particularly if they only recently bought the previous Pro version. And justifiably so - I completely understand why you might feel this way. 
  2. Some time in the future, there will likely be BattleScribe 3.0 (followed by 4.0 and so on), which would again require a new purchase. And we will have to go through all of this again. Essentially there is some amount of uncertainty about how long your purchase will last (at least going forward). 
So the plan right now is to move to a “Pro Pass” model for BattleScribe, where you would pay to unlock the Pro features for a certain period of time. Your pass/time remaining would be associated with an account you create on the BattleScribe website.

Don’t panic! Let me clarify and lay out my thoughts on how this would work.
  1. The “Pro Pass” for one year would be priced a little lower than the cost of the Pro app right now. You would also have the option to purchase passes for different lengths of time (1 month? 10 years? etc). 
  2. I should be able to implement a system where existing Pro users who have bought the old version of the app will get their first year pass for free or at a heavy discount ($1 for example). 
  3. It removes the uncertainty about when/if a new version is coming. The app will just continue to be updated and you will always have access to it. You can purchase a Pro Pass as and when you want to, and the app will just revert to the free version when your Pass runs out. 
  4. With an account, it would be possible to extend your Pass across platforms - Android, iOS and Desktop. This opens the option to have a “Bundle Pass” that unlocks Pro on all of your devices/systems. 
Essentially, BattleScribe’s development is an ongoing process that never really ends. Any veteran BattleScribe users will know how much has changed and improved over the years! And it will continue to do so as I work on introducing new features and improvements over time. I feel that a time-based system for purchasing BattleScribe Pro would better reflect this continuing work.

What about this “account” business? I guess some of you might be uncertain about this, and to be honest I was very uneasy about the idea at first too. So let me explain.

Firstly, BattleScribe would use a “login with Google” (or Facebook or other trusted third party) system that I’m sure you’ve seen before. BattleScribe would only have access to your email address and name (so you can be contacted in case of a problem - it would never be shared with anyone else, ever). This is just a way of confirming that you are who you say you are so that BattleScribe can securely look up the Passes you have purchased.

An account brings some big benefits.
  1. The passes would be stored in the BattleScribe database, outside of Google’s and Apple’s (restrictive) store systems. This gives a huge amount of flexibility over how they can managed. For example it allows me to extend passes or gift them to people. 
  2. Passes could be shared between all the devices and computers you are logged in on. This means that you could buy a pass that unlocks pro on all your devices at once (for example). 
  3. It opens up a lot of options for future BattleScribe apps/sites that may come along. I don’t know what those are yet! But being able to bring your data with you between apps is very powerful. 
OK I’m done now! Here are some questions.
  1. What do you think about having an “account”? 
  2. Would you buy BattleScribe Pro on a yearly basis? Are you an existing Pro user? Or someone who was thinking about buying Pro? Does this change things? 
  3. Do you buy “consumable” in-app-purchases in other apps? For example currency in-game-currency?

Wednesday 23 September 2015

BattleScribe 1.15.07 Updated on Desktop!

First off, I'll get this out of the way: This isn't the big update that many have been waiting for! This release is just a refresh of 1.15.07 to bring some improvements to the installer and auto-update functionality. In addition, BattleScribe on desktop now requires Java 7, and should solve some launch issues on Windows 10.

  • BattleScribe now requires Java 7 - go to to update if you think you need it (or if you're unsure).
  • Fixed issues launching BattleScribe on Windows 10 - you might need to manually re-install using the Windows setup.
  • Auto-update will now work on Mac OSX, using the Mac installer disk image.
  • Windows auto-update now uses the Windows setup for cleaner updates.
  • Fixed clicks not working on the "update available" and advert images on OSX.
  • Changed the style of the Mac version as the libraries required are no longer being maintained by the author. On the plus side, this reduces the size of the download significantly.

This has been a slight detour from the main project at hand: a big rebuild of several core components of the "engine". This coming update is intended to bring BattleScribe to a state that can better support future updates and improvements. The main people this will effect will be the data authors out there - I hope this should solve some long-running requests, or at least provide a platform to solve these issues in future.

It's a big job and has been in the works for several months now, but things are starting to come together. I'm currently "rewiring" the desktop interface to work with the new engine, so I should have a beta ready Soon™. The desktop version will remain in beta until the mobile versions can be completed, with a view to releasing all three versions (desktop, Android, iOS) at once.

I won't give you any predictions on time to release, but do know that Progress is being made!

Tuesday 17 March 2015

BattleScribe 1.15.07 Released on Android and Desktop!

Today sees the release of BattleScribe 1.15.07, with some nice bug fixes and a nice new feature.

First up, a new way to share your list: You can now save the View Roster output as an image, which is really nice for sharing on Twitter and other social networks. No idea why I didn't think of this before, but thanks to @iosefward on Twitter for that suggestion!

Second, a nasty bug that's been dogging the desktop version for some time has finally been resolved. When adding or removing certain items, the app would sometimes crash/freeze, blanking parts of the user interface or leaving it unresponsive. Of course let me know if you still see similar problems in this version.

On Android, an annoying little issue has now been fixed: when going back a page, the scroll position of the list is now remembered. No more endless scrolling in those long lists.

Now we get to see how well the auto-update feature works on desktop!

All Platforms
  • Share/save the roster output as an image for easy sharing on Twitter or other social networks
  • Fixed occasional crash when adding or removing items
  • Fixed issue where some modified profiles would not show up in the roster output

  • Fixed occasional crash when adding or removing items that would leave parts of the UI blank or unresponsive
  • Toolbar in Roster Editor will now scroll when the window is too small
  • Forces and categories can now have negative minimum points values in Game System Editor

  • List scroll position remembered when going back to the last screen
  • Fixed issue where the wrong points value would sometimes be displayed on list items
  • Fixed occasional crash when returning to the app after some time

As usual, the next job is to bring these changes and fixes to iOS, so that should be coming soon.

Tuesday 3 February 2015

BattleScribe 1.15.06 Released on Android and Desktop!

Another new release today!

1.15.06 brings the usual bug fixes and improvements, along with a new feature for Pro users and auto-updates on desktop.

The Pro version adds a statistical breakdown of your roster when viewing it, for the stats nerds among you (like me). This shows the number of units, models and upgrades you've selected, the points spent and the percentage of your total points spent on them, broken down by force and category. This is heavily dependant on the data files being configured for this though, so it might take some time to become accurate.

On desktop, BattleScribe can now auto-update itself when new versions become available. Since new versions are fairly regular, this should make life much easier! All you'll need to do for future updates is click a button and let BattleScribe download and install the new version for you. This is not available for the Mac installer version (at least for now) since it's somewhat different to the Windows installer and Any Computer zip versions.

I've also moved the ad on desktop to just below the roster tree (in the middle). This is to try to save on the wasted space either side of the ad where it was before.

As usual, the next job is to get 1.15.06 ready for iOS, so it will be available on iPhone soon.

All Platforms

  • Pro: See a breakdown of unit/model/upgrade counts, points spent and percentages when viewing your roster.
  • Fixed crash when creating/loading rosters using old/broken data files.


  • Free: Moved ad to just below the selection tree panel to save wasted space.
  • BattleScribe can auto-update itself when new versions become available (Windows installer and Any Computer zip versions only).
  • Fixed show/hide modifiers on profiles/profile links giving errors in Catalogue Editor.
  • Fixed new links not generating a unique ID in Catalogue Editor.
  • Fixed bug pasting IDs into modifier child textbox in Catalogue Editor.
  • More tweaks and bug fixes.


  • Pro: Fixed crash when editing a selection's custom name/description.
  • "Low memory mode" can be turned on/off from the menu.
  • Fixed several crashes caused by rotating the device with a dialog box showing.
  • More tweaks and bug fixes.

Thursday 8 January 2015

BattleScribe 1.15.05 Released on Android and Desktop!

Not a lot has changed on the surface in this release - it's nearly all under the hood. There have been a large number of small bugs and issues fixed, plus a big focus on performance and memory use.

I've gone through the code to identify and eliminate many areas where memory (RAM) was not being efficiently used. This leads to improved performance, shorter loading times and reduced memory requirements. Some Android devices were struggling when using large or complex data files, and would "randomly" crash when they ran out of memory. Hopefully, this situation should be much improved. In addition, Android devices with particularly small amounts of available memory will not load rule and profile data to minimise memory needs, so at least you can build lists.

On desktop, as requested, the preview popups have been adjusted so they take a bit longer to show up, and are positioned to not hide the thing they pop up from. There's also now an option to turn off the preview popups entirely.

As usual, these changes will be coming to iOS soon - I'll be submitting a new version to Apple in the next day or so.

All Platforms
  • Output now shows custom roster descriptions.
  • Improved performance and memory management.
  • Fixed bug where hidden items would sometimes not stay hidden.
  • Various other bug fixes.

  • Adjusted preview popup delay and positioning.
  • Added option to turn preview popups on/off.

  • Low memory devices will not load profile and rule data to avoid running out of memory.

Thursday 1 January 2015

BattleScribe New Year's Half Price Sale!

To usher in 2015, BattleScribe Pro is on sale: half price for a week!

You have until 23:59:59 GMT on Wednesday January 7th to pick up a copy on the cheap. You can get a desktop key from the BattleScribe store, or the mobile versions from Google Play, iTunes or the Amazon app store.

Happy new year!