<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <title>Hexaèdre</title>
  <subtitle>Discussions of tabletop role-playing games (ttrpg), boardgames, and applications made in Swift and SwiftUI for macOS and iOS.</subtitle>
  <link href="https://hexaedre.com/feed.xml" rel="self" />
  <link href="https://hexaedre.com/" />
  <updated>2026-06-26T13:23:33Z</updated>
  <id>https://hexaedre.com/</id>
  <author>
    <name>Denis Ricard</name>
  </author>
  <entry>
    <title>Star Systems App</title>
    <link href="https://hexaedre.com/tm2/" />
    <updated>2026-06-26T13:23:33Z</updated>
    <id>https://hexaedre.com/tm2/</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/WK0Z1bzFGh-4268.webp 4268w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/WK0Z1bzFGh-4268.png&quot; alt=&quot;&quot; width=&quot;4268&quot; height=&quot;3484&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;In 2024 I started making a star system generator that uses the Traveller5 (T5) rules. I originally wanted to make a Star Frontiers (SF) inspired setting using the Star Without Numbers RPG (SWN). I put that project aside for a long time, but I picked it up recently and have made a lot of progress, as can be seen in the picture above.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://hexaedre.com/img/rOT2Mxhkm--408.webp&quot; alt=&quot;&quot; width=&quot;408&quot; height=&quot;304&quot;&gt;&lt;/p&gt;
&lt;p&gt;The only difference between SWN and Traveller (any version) in terms of star system data is the way tech levels (TL) are described. SWN uses a range from 0 to 6 while Traveller uses 0 to 22. My code already had the Traveller range because the tech level random generation uses the T5 tables, which generates a Traveller TL, and then converts that to a SWN TL. So it was a simple thing to add the option to use Traveller TL. The trick is that you can&#39;t have both, so you decide which type of TL you want when you generate the first star system, and then your universe is locked in that mode.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/6fgvMn2mzu-434.webp 434w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/6fgvMn2mzu-434.png&quot; alt=&quot;&quot; width=&quot;434&quot; height=&quot;254&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Then I got my copy of Singularity, a campaign for Traveller Mongoose 2nd Edition that takes place in the Core sector of the Third Imperium. So I decided to check the TravellerMap API and see if was possible to import data into my app. Turns out there is! I had already implemented everything required. TravellerMap (TM) routes translate into rutters, although TM routes don&#39;t have factions associated with them. Regions are also not defined in TM as they are in my application, but I wrote a conversion method on import. My regions didn&#39;t have a background so I added that to match the way regions are displayed on the TravellerMap.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/inSlohmXwm-1246.webp 1246w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/inSlohmXwm-1246.png&quot; alt=&quot;&quot; width=&quot;1246&quot; height=&quot;1078&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;You can import a whole sector or just a subsector. There is selector for which milieu (time period), and some option as to what to import.&lt;/p&gt;
&lt;p&gt;I only import the main world for each system, although I may change that in the future. Factions are created from allegiances and routes are given a &amp;quot;trade route&amp;quot; faction. Perhaps I should have used a &amp;quot;x-boat&amp;quot; faction?&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/1G04TWqnco-6624.webp 6624w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/1G04TWqnco-6624.png&quot; alt=&quot;&quot; width=&quot;6624&quot; height=&quot;3764&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Of course the rendering is different because I put the star, or stars, in the center of the hex and the planet to the bottom right while TravellerMap only places the planet in the center. I also put the &amp;quot;zones&amp;quot; just around the planet instead of the whole hex as does the TravellerMap.&lt;/p&gt;
&lt;p&gt;TravellerMap version.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/RQuJrf-bIJ-1012.webp 1012w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/RQuJrf-bIJ-1012.png&quot; alt=&quot;&quot; width=&quot;1012&quot; height=&quot;708&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;My app&#39;s version.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/lYq50t2TET-1362.webp 1362w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/lYq50t2TET-1362.png&quot; alt=&quot;&quot; width=&quot;1362&quot; height=&quot;986&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I don&#39;t put the UWP in the hex, but if you click on a system a panel opens showing all the relevant information for that system.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/-Y-mwT8xjL-1684.webp 1684w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/-Y-mwT8xjL-1684.png&quot; alt=&quot;&quot; width=&quot;1684&quot; height=&quot;1318&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Once you have imported the data you need you can add your own information. For the Singularity campaign for example there are liner routes. You can set that up and only show one route without the rest.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://hexaedre.com/img/_bipRjtefS-800.webp&quot; alt=&quot;&quot; width=&quot;800&quot; height=&quot;520&quot;&gt;&lt;/p&gt;
&lt;p&gt;You can add details to worlds or star system, add your own factions and world tags, or even decide to delete star systems or move them. It&#39;s your own Traveller Universe (OTU) after all!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>SWN Progress</title>
    <link href="https://hexaedre.com/swn02/" />
    <updated>2026-06-20T13:23:33Z</updated>
    <id>https://hexaedre.com/swn02/</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/ZQQyMk-Oxb-4298.webp 4298w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/ZQQyMk-Oxb-4298.png&quot; alt=&quot;&quot; width=&quot;4298&quot; height=&quot;3744&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;As I mentioned in a &lt;a href=&quot;https://hexaedre.com/swn01/&quot;&gt;previous article&lt;/a&gt;, I have decided to use the Star Frontiers (SF) setting as a foundation for my next Stars Without Number (SWN) campaign. In that post, I expressed my intention to modify the way spike drives, also known as jump drives in other systems, operate. I did so for two reasons: to align with the SF setting and to address my personal concerns regarding the standard spike drive mechanics. If you’re interested in learning more about the spike drive adaptation, I encourage you to read the linked article.&lt;/p&gt;
&lt;p&gt;One thing I didn&#39;t discuss in that linked article are rutters.&lt;/p&gt;
&lt;blockquote&gt;A spike drill needs a course record, or “rutter” to guide the pilot. Ideally, this is an up-to-date and recent record of the metadimensional currents and energetic weather between the origin and destination of their course, one reported by a recent traveler. The older and staler the readings of the rutter, the more dangerous the drill. Most rutters for commonly-traveled routes are freely available, and significant trade corridors usually have ones only a few days old available to any pilot making the drill. Rutters charting heretofore-unknown paths between stars are often kept jealously secret by their owners, and may require an adventure or a favor to obtain.&lt;cite&gt;Star Without Number Revised&lt;/cite&gt;&lt;/blockquote&gt;
&lt;p&gt;One mechanical effect of the standard jump drive is to limit where a ship can go, so that some star systems are more difficult to reach because they are a couple of hexes away from other star systems. But that&#39;s only the case if you don&#39;t have a jump drive with the required rating, if you do then it&#39;s easy for you to reach that system. In SWN there is another requirement, or limiting mechanism: you need a rutter. Like the old sea captains Christopher Colombus, Zheng He, or Grace O’Malley, keeping notes on safe passage through difficult waters, noting reefs, sandbanks, strong currents, etc., rutters give a pilot help navigating the metadimensional space between two star systems.&lt;/p&gt;
&lt;p&gt;So rutters serve as a gating mechanism. This serves not only as a way to set star systems as more difficult to reach, it also opens a number of interesting plots possibilities. A megacorporation may have charted a course to a star system and kept it secret, but someone acquired a copy for example.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/LYOXw1kO3e-3172.webp 3172w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/LYOXw1kO3e-3172.png&quot; alt=&quot;&quot; width=&quot;3172&quot; height=&quot;2668&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Another limiting mechanism that I am adding in my setting are nebulae. Nebulae disrupt the spike drive protective bubble, so you need to find a passage around them. In the SF setting that makes it possible to have the RIM only reachable through the Zebulon corridor for example.&lt;/p&gt;
&lt;h2 id=&quot;star-system-generation&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/swn02/#star-system-generation&quot;&gt;Star System Generation&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/adFZdwpzMD-2288.webp 2288w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/adFZdwpzMD-2288.png&quot; alt=&quot;&quot; width=&quot;2288&quot; height=&quot;2586&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I adapted the star system generation tables from Traveller 5 to my needs and tweaked them a bit. For example the tables as they are generate planets and gas giants way too far from the star, in what&#39;s called the Oort Cloud region, so I limited the possible orbits. I also tweaked the population numbers for a more &amp;quot;frontier&amp;quot; feel. I added the computation of day length and year length for all planets and all satellites, taking tide-locked cases into account (different for a satellite of course). In the example above the first planet of type &amp;quot;innerworld&amp;quot; is tide-locked with the star, or a twilight-zone, so it doesn&#39;t have a day length, it&#39;s the same as its year length. But the first satellites at orbits 11 and 12 are tide-locked to their planet/gas giant (indicated by the &#39;(L)&#39;) and in this case they have a day length because as they rotate around their planet the sun rises and sets.&lt;/p&gt;
&lt;p&gt;I settled on this &amp;quot;third survey&amp;quot; UWP:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/oTedT0QnsP-696.webp 696w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/oTedT0QnsP-696.png&quot; alt=&quot;&quot; width=&quot;696&quot; height=&quot;46&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;mapping&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/swn02/#mapping&quot;&gt;Mapping&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I use the same dimensions as Traveller for sectors (32 hexes wide by 40 tall) and sub-sectors (8 hexes wide by 10 tall) with the sub-sectors labelled A through P. To keep the sector coordinates two digits exactly negatives are indicated by letters, so sector &lt;code&gt;A0&lt;/code&gt; is to the left of the sector &lt;code&gt;00&lt;/code&gt;. So all hexes on the map have unique &amp;quot;galactic coordinates.&amp;quot;&lt;/p&gt;
&lt;p&gt;Traditional Traveller mapping puts the main world at the center of the hex but I decided instead to put the star, or stars, in the center. I put a planet type to the bottom right. Blue for system where there is water available, sand for desert world, red for red-zones, purple for plague worlds, etc. The rest is the same: the presence of gas giants to the top right, naval and scout bases on the left, and above the star is the best starport in the system.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/pNx4C--B-U-630.webp 630w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/pNx4C--B-U-630.png&quot; alt=&quot;&quot; width=&quot;630&quot; height=&quot;680&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;If a system is a binary star I put both stars. Stars colors indicate their spectral type (O B A F G K M), and the size of the star depends on their luminosity class (Ia-D).&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/8hr9EcvLIN-1058.webp 1058w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/8hr9EcvLIN-1058.png&quot; alt=&quot;&quot; width=&quot;1058&quot; height=&quot;274&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/8g61c-T-1m-562.webp 562w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/8g61c-T-1m-562.png&quot; alt=&quot;&quot; width=&quot;562&quot; height=&quot;598&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;factions&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/swn02/#factions&quot;&gt;Factions&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;SWN has interesting rules for faction and faction-play is a very cool referee thing. They go very well with the SF setting as well. I started their implementation but I still have a lot of work to do regarding assets.&lt;/p&gt;
&lt;p&gt;Each faction has its own color so it&#39;s easy to see who owns a rutter on the map for example. You can also set the map to only show one faction or a set of factions.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/sy7FwUG0ls-2608.webp 2608w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/sy7FwUG0ls-2608.png&quot; alt=&quot;&quot; width=&quot;2608&quot; height=&quot;2590&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;rutters&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/swn02/#rutters&quot;&gt;Rutters&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Rutters can be created/edited, specifying the faction that owns it, the end points, and how old it is.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/S70N_G926a-2828.webp 2828w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/S70N_G926a-2828.png&quot; alt=&quot;&quot; width=&quot;2828&quot; height=&quot;1902&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;nebulae&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/swn02/#nebulae&quot;&gt;Nebulae&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;You can create five types (colors) of nebulae: emission, reflection, planetary, supernova remnant, or dark. They&#39;re simply created by specifying all the hexes they cover.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/OD_CuL9j3g-2684.webp 2684w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/OD_CuL9j3g-2684.png&quot; alt=&quot;&quot; width=&quot;2684&quot; height=&quot;1522&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;regions-and-labels&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/swn02/#regions-and-labels&quot;&gt;Regions &amp;amp; Labels&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The Star Frontiers map had regions, like the &amp;quot;Sundown Reaches&amp;quot; or the &amp;quot;Solar Major Corridor,&amp;quot; so I added this to the map. You specify hexes and one of the 6 corners along the region outline and an algorithm fits a line between these anchor points to delimit a region. You can have the name automatically positioned at the center or you can set where it&#39;s written.&lt;/p&gt;
&lt;p&gt;Labels are defined by a position, a size, and an angle. So you can put any label on the map.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/p3teI6yZq--2818.webp 2818w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/p3teI6yZq--2818.png&quot; alt=&quot;&quot; width=&quot;2818&quot; height=&quot;1786&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;controls&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/swn02/#controls&quot;&gt;Controls&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;There is a referee panel and a player panel. The player panel only shows what they know about, the systems they have surveyed, etc. The referee panel can show everything or selectively show/hide various aspects on the map. You can also set &amp;quot;factions list&amp;quot; and only show these factions on the map. I have one for the Starfarers League and all public megacorporations for example.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/o_T6l3nT14-3988.webp 3988w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/o_T6l3nT14-3988.png&quot; alt=&quot;&quot; width=&quot;3988&quot; height=&quot;3738&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;You can zoom in and out on the map. When zoomed out only the star is shown and as you zoom in the &amp;quot;surveyed data&amp;quot; is shown. If you click on a star system, a panel with all the information is opened.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://hexaedre.com/img/usxytekvKc-800.webp&quot; alt=&quot;&quot; width=&quot;800&quot; height=&quot;743&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;whats-next&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/swn02/#whats-next&quot;&gt;What&#39;s next&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;So now I need to actually build the setting, adding details to what is already there, and continuing with the missing star systems and the Sathar region. I need to flesh out the factions and implement their assets. And I need to decide where the campaign will start!&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>What&#39;s next</title>
    <link href="https://hexaedre.com/swn01/" />
    <updated>2026-06-04T13:23:33Z</updated>
    <id>https://hexaedre.com/swn01/</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/sBYnInxuuW-3020.webp 3020w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/sBYnInxuuW-3020.png&quot; alt=&quot;&quot; width=&quot;3020&quot; height=&quot;2372&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Recent events make me wonder if I should perhaps take a break from fantasy RPGs and switch to sci-fi. I had an old project to run a &lt;strong&gt;Stars Without Number&lt;/strong&gt; (SWN) campaign but with a few modifications. I want to use a mix between the SWN setting and the Star Frontiers (SF) setting. I&#39;ll use the extended Star Frontiers map, for example, and I&#39;ll use the races from SF. I ran SF a long time ago and it was very fun.&lt;/p&gt;
&lt;p&gt;I need to make some adaptations, though. The SF map shows distances between stars in Light Years (LY) while SWN, like Traveller, shows distances in parsecs, or more precisely, in &amp;quot;jump distances.&amp;quot; If you have a jump-1 drive (called a drive-1 spike drive in SWN) you can jump one hex away. A jump-2 drive lets you jump two hexes away, etc. It&#39;s been around since Traveller was first released, and it works very well. One thing that has always bothered me with this system is that there is no way for a jump-1 ship to reach stars beyond that one-hex range. The other problem that I have with the SWN system is that all ships have an abstracted amount of fuel that lets them do exactly one jump. There are fittings to add a second jump capability, but even that is abstracted. So while I was considering how to use the SF map and setting along with the SWN rules, I came up with this adaptation.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Spike drives are the same as in the SWN rules: ships have drive-1 to drive-6 spike drives.&lt;/li&gt;
&lt;li&gt;The drive rating indicates how many LY the ship travels in a day.&lt;/li&gt;
&lt;li&gt;A ship uses one ton of fuel per day, whatever the drive rating.&lt;/li&gt;
&lt;li&gt;It costs 100 cr per ton for fuel.&lt;/li&gt;
&lt;li&gt;There is a minimum of 1 day for any trip. So a 2-LY trip with a drive-4 spike drive doesn&#39;t take only a half-day; it takes a full day.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In SWN any jump takes exactly 6 days, whatever the distance, and the fuel costs 500 cr for the abstracted one jump. Here are a few comparisons with this adaptation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A drive-1 ship can jump 6-LY in 6 days and will use 6 tons of fuel at a cost of 600 cr. Similar to SWN if one hex is about 6 LY, with a bit higher cost of fuel.&lt;/li&gt;
&lt;li&gt;A drive-2 ship can jump 12 LY in 6 days and will use 6 tons of fuel at a cost of 600 cr. Similar again to SWN except for the cost.&lt;/li&gt;
&lt;li&gt;A drive-2 ship can jump 6 LY in 3 days, using 3 tons of fuel at a cost of 300 cr. This would take the same time in SWN but the fuel cost would still be 500 cr, and it would take the whole fuel available on the ship.&lt;/li&gt;
&lt;li&gt;A drive-1 ship can jump 8 LY if it can hold 8 tons of fuel. It would take 8 days and cost 800 cr. This is impossible with the SWN rules, as it is beyond the reach (6 LY) of a drive-1 ship.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I think this adaptation works very well and opens up a number of possibilities, like lower drive ships holding more fuel that can reach more distant stars, although taking a longer time to reach them. It also adds the possibility of a ship making multiple jumps on a single fuel tank.&lt;/p&gt;
&lt;p&gt;I will keep the requirement for a “rutter” (course record) and the effects of not having one or the age of the rutter on navigation. I think with this and my adaptation, space travel will be fun and challenging.&lt;/p&gt;
&lt;p&gt;I will use this extended map of the Frontier as a base for my setting.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/hDClTf8SCJ-4500.webp 4500w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/hDClTf8SCJ-4500.png&quot; alt=&quot;&quot; width=&quot;4500&quot; height=&quot;5000&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I have a history outline that includes parts of the default setting for SWN, and parts of the SF setting, mixed with a few additions.&lt;/p&gt;
&lt;p&gt;I&#39;ve started an application project. It&#39;s very basic at the moment, but encouraging.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/KF9vjklh79-3172.webp 3172w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/KF9vjklh79-3172.png&quot; alt=&quot;&quot; width=&quot;3172&quot; height=&quot;2044&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;More on this soon.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Kethiran Astronomy</title>
    <link href="https://hexaedre.com/astro01/" />
    <updated>2026-05-27T01:30:00Z</updated>
    <id>https://hexaedre.com/astro01/</id>
    <content type="html">&lt;p&gt;As another example of the amazing depth of the HârnWorld setting, it includes not only wonderful maps and lore, but the whole solar system is detailed as well as its night sky. Even early versions of the setting had this level of detail. Kethira is the name the planet where Hârn and Venârivè are located. In 2014 Kelestia Production published a product that details astronomy and astrology and it comes with a program written in Java that can work on both Windows and macOS. It&#39;s a great program and I am grateful that the author put so much work into it. After using it for a time though I came up with a few ideas on how to improve the interface, which looks like this on macOS.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/QXZKGCeeaY-1442.webp 1442w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/QXZKGCeeaY-1442.png&quot; alt=&quot;The Java version of the astronomy program.&quot; width=&quot;1442&quot; height=&quot;1150&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I wanted a better looking interface and the ability to see the information directly in the application. I also wanted a number of quality of life improvements. For example, while there are 13 built-in locations across Venârivè with preset coordinates, and you can enter coordinates manually, there is no way to save locations and add them to the list.&lt;/p&gt;
&lt;p&gt;A thing that bothered me also was that when you create a star map or a horoscope, it creates a file named &lt;em&gt;temp.svg&lt;/em&gt; in the same folder as the program. If you press &lt;code&gt;Create Star Map&lt;/code&gt;, then &lt;code&gt;Create Horoscope&lt;/code&gt;, it silently replaces the star map file with the horoscope unless you changed the name of the file. And you can&#39;t view those files from within the app.&lt;/p&gt;
&lt;p&gt;So I decompiled the Java version and I created a SwiftUI version based on that code.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/CAamtTIhZj-4194.webp 4194w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/CAamtTIhZj-4194.png&quot; alt=&quot;The star map view of the SwiftUI version of Kethiran Astrology.&quot; width=&quot;4194&quot; height=&quot;2984&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;For reference this is the star map at the same location and time as given by the original Java program.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/hBMo22yJNM-2124.webp 2124w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/hBMo22yJNM-2124.png&quot; alt=&quot;&quot; width=&quot;2124&quot; height=&quot;2164&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;date-and-time&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#date-and-time&quot;&gt;Date &amp;amp; Time&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The first thing I did was to change how the time is displayed. The time is internally represented as a fraction of a day, and this was what appeared on both the celestial chart and the astrological forecast, as depicted here.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/0vUnkSdjjZ-574.webp 574w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/0vUnkSdjjZ-574.png&quot; alt=&quot;&quot; width=&quot;574&quot; height=&quot;134&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I modified it not only to display a legible time but also to incorporate both the “standard” time (the time at the Prime Meridian or longitude zero), which I refer to as OST (Ómrium Standard Time).&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/lYjsczE910-722.webp 722w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/lYjsczE910-722.png&quot; alt=&quot;&quot; width=&quot;722&quot; height=&quot;158&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;ecliptic-and-zodiac-boundaries&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#ecliptic-and-zodiac-boundaries&quot;&gt;Ecliptic &amp;amp; Zodiac Boundaries&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;As shown in the above picture, the original program does not draw the ecliptic. Instead, it displays red dots at the zodiacal boundaries on the ecliptic. I found the red dots unappealing, so I substituted them with a line for the ecliptic and tick marks for the boundaries.&lt;/p&gt;
&lt;p&gt;I also observed that the defined boundaries did not align with the signs listed in the rulebook. For example, if you enter the date as the 4th of Peonu, the rulebook states that your sign is Arálius, while the program claims that you are Ùlándus instead. This discrepancy can be attributed to axial precession. In fact, the boundaries were accurate in year 1, but over time, even the smallest deviations accumulated, resulting in their misalignment in year 720. It is important to note that the reference year in all Hârn publications remains the year 720. So the rulebook sunsign tables should be valid in year 720 and I changed the boundaries to match it.&lt;/p&gt;
&lt;h2 id=&quot;constellation-outlines&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#constellation-outlines&quot;&gt;Constellation outlines&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The original didn’t include outlines for the constellations, so I added them. However, I encountered a dilemma: I remembered the outlines from previous editions, but they had changed in the most recent publication. The new outlines are very simple, usually just a “circle around” the constellation’s stars, while the earlier version had more complex ones. Here is the latest version of the Aik constellation:&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/b3tY3sBUKy-606.webp 606w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/b3tY3sBUKy-606.png&quot; alt=&quot;&quot; width=&quot;606&quot; height=&quot;726&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;And this was the previous version.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/F9O0q2_rpZ-680.webp 680w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/F9O0q2_rpZ-680.png&quot; alt=&quot;&quot; width=&quot;680&quot; height=&quot;672&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I much prefer the previous versions. I debated with myself and actually consulted someone at KP, and he also preferred the older version. This is what I put in my program.&lt;/p&gt;
&lt;p&gt;As I traced the contours, I noticed several things. Firstly, some stars were not accurately placed according to the standard star maps. While not many, I had to adjust their positions. Additionally, I modified numerous constellation labels, as they were often significantly removed from the actual constellation, a detail that is harder to discern without the aid of the outlines.&lt;/p&gt;
&lt;p&gt;Then I noticed that the position of the zodiac constellations weren&#39;t inside the zodiac boundaries. I told myself that was probably because I changed those boundaries. Yet when I checked the original, I found that they did not fall inside the original boundaries either (those red dots).&lt;/p&gt;
&lt;h2 id=&quot;ascendant-and-descendant-signs&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#ascendant-and-descendant-signs&quot;&gt;Ascendant and Descendant signs&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/V4DQIbbpD9-3358.webp 3358w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/V4DQIbbpD9-3358.png&quot; alt=&quot;&quot; width=&quot;3358&quot; height=&quot;1910&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Around that time, a user on the Lythia Hârn discussion board brought up an issue with the horoscope. They noted that the software was providing incorrect information about the ascending and descending zodiacal signs. In some instances, it reported both signs as identical. The ascendant is defined as “the sign that is rising in the East at that time and place”, while the descendant is “the constellation setting on the other horizon.” These cannot be the same sign.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/s6V6LrKuJj-4842.webp 4842w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/s6V6LrKuJj-4842.png&quot; alt=&quot;&quot; width=&quot;4842&quot; height=&quot;2778&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Upon investigation, I discovered that the software was determining the angle φ of the ascendant and then flipping its sign to -φ to compute the descendant. This is not the correct approach, as it can lead to both the ascendant and descendant having the same constellation for small angles. The correct method is to add π (working in radians) to the calculated angle to obtain the descendant.&lt;/p&gt;
&lt;h2 id=&quot;meridian-local-time&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#meridian-local-time&quot;&gt;Meridian Local Time&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I have conducted a test to compare local time and standard time at the Prime Meridian, or zero longitude. Typically, the standard and local time should differ by a maximum of 8 minutes along this line, but in the original code, there was a significant discrepancy of half a day. I resolved this issue in my revision. I also opted to use &lt;strong&gt;OST&lt;/strong&gt; as a shorthand for standard time. It&#39;s similar to GMT, but on Kethira, the closest notable city to the Meridian is Ómrium so I went with Ómrium Standard Time.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/qspLXzvSnn-3376.webp 3376w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/qspLXzvSnn-3376.png&quot; alt=&quot;&quot; width=&quot;3376&quot; height=&quot;2526&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;esthetics&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#esthetics&quot;&gt;Esthetics&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/UKlzmuiK4e-274.webp 274w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/UKlzmuiK4e-274.png&quot; alt=&quot;&quot; width=&quot;274&quot; height=&quot;240&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The most recent astronomical chart boasted a violet hue, with white labels for the zodiac constellations and yellow ones for the others. The constellation labels featured diacritics, and some of them had undergone spelling modifications since the program’s creation. To align with the latest chart, I revised the labels and colours for a more accurate representation.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/JbaNwsDpmV-360.webp 360w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/JbaNwsDpmV-360.png&quot; alt=&quot;&quot; width=&quot;360&quot; height=&quot;458&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;magnitudes&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#magnitudes&quot;&gt;Magnitudes&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In the initial iteration of the software, all stars appeared as identical dots, without any distinction in brightness. I added magnitude data for all the canonical stars and incorporated an additional 500 faint background stars.&lt;/p&gt;
&lt;h2 id=&quot;full-moon&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#full-moon&quot;&gt;Full Moon&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Someone asked an excellent question about the syzygy, or the actual time of the full moon. I checked, and the program doesn’t really provide that information. However, a numerical value was displayed in a table, which I had not thoroughly examined. In HârnWorld, the Full Moon always falls on the 15th of each month, while the New Moon occurs on the 30th. It was only upon being prompted that I began to explore this further.&lt;/p&gt;
&lt;p&gt;I discovered that the program reported the full moon on the 16th! I looked at the code and realized that this was even worse than I thought. The full moon was set to appear on the 17th of year 1, and it was only a slow drift that made it move to the 16th by year 720.&lt;/p&gt;
&lt;p&gt;I also fixed that, and, like the other aspects, I made it so that the full moon occurs on the 15th at the beginning of the year 720. Moving forward or back in time from 720 will move it by about 2.5 minutes per year, so it will align with the rulebook for a while.&lt;/p&gt;
&lt;p&gt;As I was repairing the Moon’s phase, I incorporated an accurate depiction of the lunar phase into the celestial chart and astrological reading. Instead of a complete white circle, it now displays the precise phase. Moreover, the illuminated side aligns with the Sun’s position.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/Kuyjog1gss-1290.webp 1290w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/Kuyjog1gss-1290.png&quot; alt=&quot;&quot; width=&quot;1290&quot; height=&quot;622&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;saved-locations-and-map-picker&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#saved-locations-and-map-picker&quot;&gt;Saved Locations &amp;amp; Map Picker&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In the initial version of the program, you had a little more than 10 predefined locations and the ability to enter longitude and latitude manually, but there was no way to save these coordinates or change any of the predefined locations. I incorporated a function that allows you to save locations (and delete them). I also integrated a map-based location selector for Venârivè. All you need to do is click on the desired spot and the coordinates will be instantly populated.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/Ollu6z8dZq-3992.webp 3992w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/Ollu6z8dZq-3992.png&quot; alt=&quot;The location picker view of the SwiftUI version of Kethiran Astrology.&quot; width=&quot;3992&quot; height=&quot;2796&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Of course you can zoom in. The interrupted sinusoidal projection is taken into account. This converts the coordinates of the image into the correct longitude and latitude for the selected point on the map. You can then label and store that location for later use.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/z68KlQnHf5-4210.webp 4210w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/z68KlQnHf5-4210.png&quot; alt=&quot;&quot; width=&quot;4210&quot; height=&quot;3048&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;some-other-things&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#some-other-things&quot;&gt;Some other things&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;In addition to saving as &lt;strong&gt;SVG&lt;/strong&gt; I also added a save as &lt;strong&gt;PDF&lt;/strong&gt; option for the star map and horoscope, and a save as &lt;strong&gt;TXT&lt;/strong&gt; option for the table information. I also persist the location selected (either named location or manual coordinates), as well as the date and time between app launches. I also added information on the type of celestial body in the Nolomar System tab. You can now more easily select the time of day, and it now works in both dark and light modes.&lt;/p&gt;
&lt;h2 id=&quot;thank-you-to-the-original-author&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/astro01/#thank-you-to-the-original-author&quot;&gt;Thank you to the original author&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I want to express my gratitude to the creator of this program, as they did the bulk of the work. I could not have made these modifications without their impressive initial efforts. I made a few adjustments, but I built on top of their extensive foundation. Therefore, I would like to thank you, whoever you are, for creating such an enjoyable and functional program.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Edit&lt;/strong&gt;: I posted a list of the core engine changes I made on the &lt;a href=&quot;https://hexaedre.com/apps/KethiraAstro/&quot;&gt;application page&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>HMK Toolkit version 1.2.2</title>
    <link href="https://hexaedre.com/hmk09/" />
    <updated>2026-05-02T05:00:00Z</updated>
    <id>https://hexaedre.com/hmk09/</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/zrpepomhyZ-2224.webp 2224w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/zrpepomhyZ-2224.png&quot; alt=&quot;The new Quick NPC panel in HMK Toolkit 1.2.2.&quot; width=&quot;2224&quot; height=&quot;1920&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;On page 410 of the HarnMaster Kethira rulebook, there is a section on &lt;strong&gt;Quick NPC&lt;/strong&gt; which details a method to create a character sheet for a plausible NPC without going through all character creation. I implemented this method in HMK Toolkit but also included generators for region, realm, society, social class, occupation, and character details like height, weight, complexion, etc. It even includes siblings, marital status, etc.&lt;/p&gt;
&lt;p&gt;You can select everything, or some of the things going from left to right. For example you can decide to generate an old NPC from the Emélrenè range of Emélrenè and let the rest be random.&lt;/p&gt;
&lt;p&gt;The Quick NPC method includes the selection of 5 skills as major skills and the selection of bonus skills. These are implemented by clicking or option-clicking on various skills. The major skills are highlighted in yellow, and the bonus skills are indicated with a green modifier next to the skill name.&lt;/p&gt;
&lt;p&gt;You can add notes and save the NPC so you can recall them later. It&#39;s a great tool to fill out the various NPCs in your game, and it&#39;s so fast that you can literally create one when your players unexpectedly take a tangent to a NPC you had not planned. It takes 15 seconds including the major skill selection and the bonus skills. The generation itself is instantaneous.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>HMK Toolkit version 1.1.6</title>
    <link href="https://hexaedre.com/hmk08/" />
    <updated>2026-03-05T05:00:00Z</updated>
    <id>https://hexaedre.com/hmk08/</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/TzW3j7B_pg-2680.webp 2680w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/TzW3j7B_pg-2680.png&quot; alt=&quot;The new campaign panel in HMK Toolkit. It shows a campaign overview and narrative seeds, a list of notes with in-world dates, and the player characters associated with their players.&quot; width=&quot;2680&quot; height=&quot;2236&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;It&#39;s been many months since I&#39;ve blogged about the public version of HMK Toolkit, and more than a year since I&#39;ve shared details of my own version so let&#39;s talk about my version. As I started writing this, I found it hard to choose a main feature to emphasize: there are so many. This version also adds some polish and tweaks, in addition to quality of life little things.&lt;/p&gt;
&lt;h3 id=&quot;campaign&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#campaign&quot;&gt;Campaign&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/x5V_unrRzV-590.webp 590w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/x5V_unrRzV-590.png&quot; alt=&quot;The campaign selector, with each campaign identified by a four-letter code.&quot; width=&quot;590&quot; height=&quot;92&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I now have a place to take campaign notes. You can select a campaign at the top (identified by a four-letter code). Each campaign has room for summary or general details and narrative seeds. You can also associate players with specific characters and press a button and be taken to that character sheet.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/0wdRvJV7yq-1494.webp 1494w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/0wdRvJV7yq-1494.png&quot; alt=&quot;An example of notes in the campaign panel showing an expanded note.&quot; width=&quot;1494&quot; height=&quot;420&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Below that you can add notes. Each note has a title (shown in the list), a content (shown when you select a note), an in-world date, and the option to put a tag on the calendar (shown as a calendar icon in the list). When the option to show a note on the calendar is selected, it is displayed in the calendar as the campaign four-letter code followed by the note number. This could be used for various things, for example as a reminder to make an alchemical elixir decay roll in 30 days, or milestones in the campaign.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/I4hlIuTuRN-386.webp 386w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/I4hlIuTuRN-386.png&quot; alt=&quot;Calendar day showing a note from a campaign as UWEC-4.&quot; width=&quot;386&quot; height=&quot;266&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Of course only the notes from the currently selected campaign are shown in the calendar, so you can run multiple campaigns and not have your calendar cluttered with stuff unrelated to what you&#39;re running at the moment. When you end a game session, you can click a button to add a note with the in-game date and time the session ended, as well as the real-world date and time. You can then add situational notes as necessary. This way you can start your next session exactly where you left off.&lt;/p&gt;
&lt;h3 id=&quot;armour-validation-and-bulk&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#armour-validation-and-bulk&quot;&gt;Armour Validation &amp;amp; Bulk&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/yZfd0e8sm8-1424.webp 1424w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/yZfd0e8sm8-1424.png&quot; alt=&quot;The armour validation window showing a configuration that incurs 5 bulk and an extra 5 ENC.&quot; width=&quot;1424&quot; height=&quot;1896&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;This one was quite difficult to implement! It doesn&#39;t seem too hard when you read the rules, but the process calls for a judgment on which article should be considered as the &#39;base&#39; layer, and this isn&#39;t obvious programmatically. The solution was to try all the alternatives for each body zone and find the least restrictive ones.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/k3ehGXi479-800.webp 800w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/k3ehGXi479-800.png&quot; alt=&quot;The armour validation popover for an invalid armour set shown on the character sheet.&quot; width=&quot;800&quot; height=&quot;336&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;It made me add unit tests to my app with a number of edge cases. It flags invalid armour, automatically adjusts encumbrance and bulk, and applies those where required on the character sheet. In addition to the armour validation window, there are also visible cues on the character sheet, with popover with explanations.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/jgC30119Mr-1010.webp 1010w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/jgC30119Mr-1010.png&quot; alt=&quot;The armour validation popover for additional encumbrance shown on the character sheet.&quot; width=&quot;1010&quot; height=&quot;474&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;rollers&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#rollers&quot;&gt;Rollers&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I often found myself wanting to make a skill test roll for a character I was looking at in HMK Toolkit, so I added this functionality.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/0iOL_p0H1R-496.webp 496w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/0iOL_p0H1R-496.png&quot; alt=&quot;A skill roll test for the Folklore test. We see that this skill has a +3 bonus from a blessing. The roll was 69, making this a failure. If this was a Skill Value test the resulting SV would be 5.&quot; width=&quot;496&quot; height=&quot;404&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;In turn, this required me to have the correct EML for all skills, including modifiers like blessing, fatigue, encumbrance, perception penalties, and impairments. While I made these, I added a visual indicator when a perception penalty is applied because of armour.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/3t8W88SNXQ-484.webp 484w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/3t8W88SNXQ-484.png&quot; alt=&quot;A skill roll test for the Perception test. We see that this skill has a -15 penalty from armour. The roll was 17, making this a success. If this was a Skill Value test the resulting SV would be 5.&quot; width=&quot;484&quot; height=&quot;414&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;After doing the skills on the first page, I did the combat skills on the second page, with rollers for attack, block and counterstrike, as well as dodge. Then I added a shock roll and a shock reroll, an initiative and an awareness test (so you don&#39;t have to switch to the first page to make those).&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/adGI1zCb51-378.webp 378w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/adGI1zCb51-378.png&quot; alt=&quot;An attack roll with a critical success showing two stars.&quot; width=&quot;378&quot; height=&quot;480&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;impairment&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#impairment&quot;&gt;Impairment&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/wiMSD1HNDV-1002.webp 1002w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/wiMSD1HNDV-1002.png&quot; alt=&quot;A skill roll test for the Folklore test. We see that this skill has a +3 bonus from a blessing. The roll was 69, making this a failure. If this was a Skill Value test the resulting SV would be 5.&quot; width=&quot;1002&quot; height=&quot;836&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;This was also a major endeavour, in particular because when I originally made the character model, I naively only included a single integer for impairment when there are actually 7 different impairment values... So I had to be creative and I used an encoder/decoder to use a single integer to manage all those values.&lt;/p&gt;
&lt;p&gt;The other challenge was fitting this into the interface without disrupting the layout too much. In the end I put the controls in the header and display the impairments in the body zones. Impairments are applied to all skills EML according to the rules for impaired tests.&lt;/p&gt;
&lt;h3 id=&quot;primary-hand-and-2-h-use&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#primary-hand-and-2-h-use&quot;&gt;Primary Hand and 2-H Use&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Once you have an impairment, which can apply to one arm but not the other, the natural next step is to be able to change your weapon from one hand to the other. And once you&#39;ve made that, why not put the option to use a weapon two-handed? This wasn&#39;t hard to code, but the logic of implementing this and making sure all the other parts followed along made me lose a few neurons, for sure.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://hexaedre.com/img/5scTTCSn94-800.webp&quot; alt=&quot;The Combat Gear section showing changing from using the right hand as the primary hand (with the shield used in the left hand) to using the left hand as a primary hand.&quot; width=&quot;800&quot; height=&quot;358&quot;&gt;&lt;/p&gt;
&lt;p&gt;If you use your &amp;quot;good hand&amp;quot; as a primary hand, that indicator is green, otherwise it&#39;s red. In the example above, the character is right-handed. Using a weapon in your off-hand increases the HFT, and there is a minimum off-hand penalty, except for shields used in a block or press attack. When you use a weapon two-handed, the HFT is reduced by 5, and in some circumstances the impact is increased. All of these, and the effects of various impairments, are taken into account.&lt;/p&gt;
&lt;h3 id=&quot;armour-set-builder&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#armour-set-builder&quot;&gt;Armour Set Builder&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/iguhG0er6S-874.webp 874w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/iguhG0er6S-874.png&quot; alt=&quot;The body location table for the &#39;Clothing&#39; armour set.&quot; width=&quot;874&quot; height=&quot;1398&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I&#39;ve included the rulebook armour suits in HMK Toolkit since the beginning. I also provided a way to view a body location table for any of these armour suits, which is very useful in melee combat, but there was no way to create new sets of armour articles. Until now. Now, you can access the armour set and view the contents, making any necessary modifications.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/6G2vCwEaMd-1772.webp 1772w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/6G2vCwEaMd-1772.png&quot; alt=&quot;The body location table for the &#39;Clothing&#39; armour set with the editor open.&quot; width=&quot;1772&quot; height=&quot;1398&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The armour suits from the rulebook cannot be edited, but you can duplicate them and start from there to make modifications, or you can start from scratch with a new set. You can drag and drop articles and see the resulting body location table update in real time, including armour validation, encumbrance, bulk, etc.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/_Dc_oYVxP2-2648.webp 2648w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/_Dc_oYVxP2-2648.png&quot; alt=&quot;A copy of the &#39;Clothing&#39; armour set with the editor open and the breeches replaced with leggings.&quot; width=&quot;2648&quot; height=&quot;2776&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;non-player-characters&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#non-player-characters&quot;&gt;Non-Player Characters&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/KLOXrMtWEc-896.webp 896w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/KLOXrMtWEc-896.png&quot; alt=&quot;The NPC panel for Trivis.&quot; width=&quot;896&quot; height=&quot;2218&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Another thing that was included but that you couldn&#39;t edit was non-player characters. These are constructed as explained on page 363 of the rulebook. They include occupation skills and combat skills, one of which is reserved for the armour suit worn. HMK Toolkit displays a body location table automatically if it finds a matching armour set.&lt;/p&gt;
&lt;p&gt;It&#39;s now possible to create and edit any NPCs. And since you can now also create armour sets, you can have them equipped with specific kit.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/nccgqMBXch-2200.webp 2200w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/nccgqMBXch-2200.png&quot; alt=&quot;The edit NPC panel for Trivis.&quot; width=&quot;2200&quot; height=&quot;3156&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I’ve added a few details to the rulebook’s non-player character block:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a role-playing cue: helps the GM get into this NPC.&lt;/li&gt;
&lt;li&gt;Move and weapon length information: because you can add NPCs to the IR Tracker (see below).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also have the habit of including the skills to be tested to find hidden details of NPCs.&lt;/p&gt;
&lt;h3 id=&quot;npcs-on-the-ir-tracker&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#npcs-on-the-ir-tracker&quot;&gt;NPCs on the IR Tracker&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/M_PQYmdc_4-1914.webp 1914w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/M_PQYmdc_4-1914.png&quot; alt=&quot;IR Tracker with the add NPC menu open.&quot; width=&quot;1914&quot; height=&quot;1386&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;You can now add any NPC to the IR Tracker. This automatically adds a GM note with the combat skills information for that NPC.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/dskMWWZmMX-2092.webp 2092w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/dskMWWZmMX-2092.png&quot; alt=&quot;The edit NPC panel for Trivis.&quot; width=&quot;2092&quot; height=&quot;1614&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I also added a simple dice roller with a history while I was at it.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/r0mYjotDx8-2092.webp 2092w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/r0mYjotDx8-2092.png&quot; alt=&quot;The edit NPC panel for Trivis.&quot; width=&quot;2092&quot; height=&quot;1614&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;glossary-with-search&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#glossary-with-search&quot;&gt;Glossary with search&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I&#39;m slowly building a searchable glossary. For example I can never remember religious titles. What&#39;s an Ebasethe again?&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/IEgqMMb6S1-1408.webp 1408w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/IEgqMMb6S1-1408.png&quot; alt=&quot;The result of a search for ebasethe.&quot; width=&quot;1408&quot; height=&quot;1890&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;And it&#39;s cross-linked so if you press a button, you are taken to a related glossary entry.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/bg0iRrKrmM-1776.webp 1776w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/bg0iRrKrmM-1776.png&quot; alt=&quot;The result of a search for alchemy, with the &#39;assit&#39; entry selected.&quot; width=&quot;1776&quot; height=&quot;1926&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;subsystems&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#subsystems&quot;&gt;Subsystems&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I made myself a couple of tools that display an overview of a subsystem with a selected character&#39;s pertinent information. The first of which is persuasion. You select a character, and it shows all his persuasion skills with the two best skills highlighted, alongside the rules for persuasion.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/zdaHrdDA1s-2026.webp 2026w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/zdaHrdDA1s-2026.png&quot; alt=&quot;persuasion panel with Babr selected.&quot; width=&quot;2026&quot; height=&quot;2692&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The second one is for written works. This shows all the languages and scripts skills for the selected character, as well as the EML for reading and scribing, which use one or two secondary modifiers. Since there are a lot of combinations, this saves time at the table and gives a good overview of the various rules, some of which are under language, while others are under written works in the rulebook.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/sKaLZd1SYE-3278.webp 3278w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/sKaLZd1SYE-3278.png&quot; alt=&quot;The written work panel with Elben selected.&quot; width=&quot;3278&quot; height=&quot;2748&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;shek-pvar-characters&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#shek-pvar-characters&quot;&gt;Shèk-Pvâr Characters&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;I also made a tool for Shèk-Pvâr characters, to make their spell selection easier. It lists the ML and ARP cost for each convocation and complexity. It gives assisted and unassisted research capabilities, tracks ARP spent, adjusts ARP costs depending on chantry quality for assisted research, and gives various details pertinent to Shèk-Pvâr characters. When you made your spell selection, you can press a button and your character sheet is updated with the spell selection you&#39;ve just made.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/TbOUUPb5Bb-2724.webp 2724w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/TbOUUPb5Bb-2724.png&quot; alt=&quot;The spell selection window for Shèk-Pvâr characters.&quot; width=&quot;2724&quot; height=&quot;2228&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h3 id=&quot;other-improvements&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk08/#other-improvements&quot;&gt;Other improvements&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Other improvements include better handling of long skill names (in the case of specialties), long occupation, or long melee weapon names. I also highlight total fatigue if it is greater than zero. And I added a popover with fatigue recovery times.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/eMmY3gdlMc-822.webp 822w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/eMmY3gdlMc-822.png&quot; alt=&quot;The fatigue recovery popover.&quot; width=&quot;822&quot; height=&quot;1082&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;A list of injury special effects popover.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/W3hIvrFKfr-768.webp 768w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/W3hIvrFKfr-768.png&quot; alt=&quot;The injury special effects popover.&quot; width=&quot;768&quot; height=&quot;570&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The effects of the shock states.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/r0X8ZAj_iK-776.webp 776w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/r0X8ZAj_iK-776.png&quot; alt=&quot;The shock states popover.&quot; width=&quot;776&quot; height=&quot;1290&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;A &amp;quot;gear value&amp;quot; detail popover that also displays the character&#39;s wealth score.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/qLgpQ0hJ0B-626.webp 626w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/qLgpQ0hJ0B-626.png&quot; alt=&quot;The gear value details popover.&quot; width=&quot;626&quot; height=&quot;492&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;A popover detailing the weight of the character&#39;s possessions. This displays the list of weapons and the total weight of each container, including the backpack&#39;s special half rule.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/edQ8pf3jXP-602.webp 602w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/edQ8pf3jXP-602.png&quot; alt=&quot;The gear weight detail popover.&quot; width=&quot;602&quot; height=&quot;1202&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Better handling when a character carries more than one of the same weapon, for example throwing daggers (tabûris) or javelins. And this also handles names that become too long with a quantity, as shown for the javelin below.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/TWNldng025-396.webp 396w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/TWNldng025-396.png&quot; alt=&quot;The melee weapons section showing two tabûris, written as &#39;Tabûri (X2)&#39;.&quot; width=&quot;396&quot; height=&quot;452&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/62AcWF9_Gb-380.webp 380w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/62AcWF9_Gb-380.png&quot; alt=&quot;The melee weapons section showing two bodkin javelins, written as &#39;Javelin (Bo.) (X2)&#39;.&quot; width=&quot;380&quot; height=&quot;458&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I can now also handle magical weapons and armour by using the &#39;traits&#39; system. This magical broadsword is an example.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/8J-BBYMOQC-978.webp 978w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/8J-BBYMOQC-978.png&quot; alt=&quot;A magical weapon with a Charm and an Anvil enchantment.&quot; width=&quot;978&quot; height=&quot;146&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I also implemented a modifier key that shows skills EMLs on the first page of the character sheet. This highlights skills that have an EML different than their ML. Elben here has a blessing to Folklore and is encumbered (which affects skills with AGL in their SB).&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://hexaedre.com/img/Zp1ncdP_J7-800.webp&quot; alt=&quot;The skill section of the character sheet, with ML changing into EML when the option key is pressed.&quot; width=&quot;800&quot; height=&quot;448&quot;&gt;&lt;/p&gt;
&lt;p&gt;And a number of other small details, bug fixes, and small tweaks.&lt;/p&gt;
&lt;p&gt;I am quite pleased with version 1.1.6. I now use it daily to prepare for the first adventure in my upcoming campaign. This is the driving motivator for all these tweaks and improvements. As I see friction points, I implement a solution to reduce them and make my life easier in general!&lt;/p&gt;
&lt;p&gt;Future improvements might include editors for armour articles, melee and missile weapons, as well as missiles. And perhaps a trait editor. Something to enable the creation of magical items, perhaps.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>New Price Cyclopedia PDF</title>
    <link href="https://hexaedre.com/hmk07/" />
    <updated>2025-11-28T05:00:00Z</updated>
    <id>https://hexaedre.com/hmk07/</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/YG8oMJNO3d-5030.webp 5030w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/YG8oMJNO3d-5030.png&quot; alt=&quot;Two-page spread of the Price Cyclopedia showing the included details of the Black Swan inn.&quot; width=&quot;5030&quot; height=&quot;3255&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;When I look into a new role-playing game, the first thing I do generally is:&lt;/p&gt;
&lt;ol start=&quot;0&quot;&gt;
&lt;li&gt;make a character;&lt;/li&gt;
&lt;li&gt;make my own version of the character sheet;&lt;/li&gt;
&lt;li&gt;make a price list.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Like most, I start by making characters. Then I notice that the character sheet provided is lacking, either in organization or quality, so I make my own. And, of course, the last thing in character creation is to equip the character, and at this point I generally find the list of equipment either too limited or spread over too many chapters, which means that you need to flip pages all the time. Granted, this is not the case for all game systems, but it happens very often. As a game master, I also like to have a comprehensive price list at hand because I know my players, and I know they&#39;ll ask for something very specific, so I like to be prepared.&lt;/p&gt;
&lt;p&gt;HârnMaster Kèthîra is an exception. I really like the character sheet that is included. It is both functional and very nice! As for the list of equipment, this is always a balancing act for publishers because of the page count, but HMK is well balanced and well organized. But still, HarnMaster has been around for more than 40 years and you just can&#39;t fit everything into an already large tome.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/itmH_9yjTy-5030.webp 5030w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/itmH_9yjTy-5030.png&quot; alt=&quot;Two-page spread of the Price Cyclopedia showing the Lia-Kavair (thieves guild) entry and the example Two-Finger Gang.&quot; width=&quot;5030&quot; height=&quot;3256&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;HarnMaster has a long history. The world of Hârn was first published as a system-agnostic setting. Then the first version of the HarnMaster rules came out. Many supplements added details to either the setting or the rules. Very quickly I decided that I needed to compile all the prices from those various sources into a single price list. And so the first version of my price list came out in the 1980s. I made it available in various bulletin board systems of the time. You can still find one version or another in the internet archives.&lt;/p&gt;
&lt;p&gt;There have been many versions over the years. I made new versions for HarnMaster 2 and HarnMaster 3. I also made a version for when I used the AD&amp;amp;D rules in HarnWorld. Last year I made a few changes to include the weapons and armour from HârnMaster Kèthîra, but I didn&#39;t change the rest of the information.&lt;/p&gt;
&lt;p&gt;HârnMaster Kèthîra is game for all of Venârivè and my old price list was Hârn-centric, so I decided to update everything to be compatible with this much wider region in general and with the HMK rules in particular. I removed the Hârn kingdoms’ economic data because I don&#39;t have those details for all of Venârivè. I updated the floor plans of the Black Swan inn that is included. In fact I had to start over because I don&#39;t even have the software that I used to make it all those years ago. I also changed the example Lìa-Kaváir organization to something much simpler.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/lgx1xtv-wf-5030.webp 5030w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/lgx1xtv-wf-5030.png&quot; alt=&quot;Two-page spread of the Price Cyclopedia showing the first part of weaponcrafter.&quot; width=&quot;5030&quot; height=&quot;3255&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Other modifications include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;new spot art for every location/entry;&lt;/li&gt;
&lt;li&gt;more consistent formatting everywhere;&lt;/li&gt;
&lt;li&gt;revised and improved index with links to page references;&lt;/li&gt;
&lt;li&gt;many new entries, like astrologer, harbourmaster, guild/mangai, etc.;&lt;/li&gt;
&lt;li&gt;rule-specific details, like potions, elixirs, and mixtures;&lt;/li&gt;
&lt;li&gt;updated physician&#39;s treatment prices for the HMK injury system;&lt;/li&gt;
&lt;li&gt;revised and updated the chandler&#39;s entries for items from other sources;&lt;/li&gt;
&lt;li&gt;added many prices that were missing, fixed many errors and inconsistencies;&lt;/li&gt;
&lt;li&gt;regrouped all weapons, projectiles, and projectile containers under Weaponcrafter for ease of reference;&lt;/li&gt;
&lt;li&gt;also regrouped all armour articles, including clothing, under Weaponcrafer;&lt;/li&gt;
&lt;li&gt;added amour article coverage and armour values table.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With all of that, I think this is a useful tool in your HârnMaster Kèthîra toolbox and I encourage you to take a look!&lt;/p&gt;
&lt;p&gt;You can download it from the &lt;a href=&quot;https://hexaedre.com/hmk/&quot;&gt;HMK Resources page&lt;/a&gt; or with this &lt;a href=&quot;https://hexaedre.com/files/HMK_Price_Cyclopedia.pdf&quot;&gt;direct link&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/3s1QuoaY1E-5030.webp 5030w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/3s1QuoaY1E-5030.png&quot; alt=&quot;Two-page spread of the Price Cyclopedia showing part of the Weaponcrafter entry and part of the index.&quot; width=&quot;5030&quot; height=&quot;3256&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Feature Complete</title>
    <link href="https://hexaedre.com/hmk05/" />
    <updated>2025-11-14T05:00:00Z</updated>
    <id>https://hexaedre.com/hmk05/</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk05/sL190QMsPB-426.webp 426w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk05/sL190QMsPB-426.png&quot; alt=&quot;A new option for exporting a character has been added: PDF export.&quot; width=&quot;426&quot; height=&quot;98&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;HMK Toolkit version 1.1 was a massive effort on my part and a push for more visibility for the app. The landing page was redesigned to be much more appealing and “convincing” to potential users. The documentation was also redesigned to be much more accessible and logically organized.&lt;/p&gt;
&lt;p&gt;The only two things that were still on my &amp;quot;must-have&amp;quot; list were PDF export and masterwork armour articles. Today I am releasing version 1.1.1 which includes those two features.&lt;/p&gt;
&lt;h2 id=&quot;pdf-export&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk05/#pdf-export&quot;&gt;PDF Export&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;This is something that I absolutely needed personally. I use HMK Toolkit for my campaign and all my players except one are on Windows. That means that they use the editable character sheet PDF, which is fine of course, but it also means that I can&#39;t help them with something like a new configuration of their armour very easily. Well, now I can just make changes to their characters in HMK Toolkit, press a button, and send them a PDF of the full character sheet. It&#39;s not editable, of course, but they can reference it for filling the one they have.&lt;/p&gt;
&lt;p&gt;This was not an easy feature to implement, I must say, but it&#39;s totally worth it. The PDF is identical to what you see in HMK Toolkit.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk05/bHq7geuj35-5055.webp 5055w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk05/bHq7geuj35-5055.png&quot; alt=&quot;The two pages of the PDF export for a character named Floria.&quot; width=&quot;5055&quot; height=&quot;3271&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;masterwork-armour-articles&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk05/#masterwork-armour-articles&quot;&gt;Masterwork Armour Articles&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;The second thing I had on my &amp;quot;must-have&amp;quot; list was masterwork armour articles. HMK Toolkit already had all the masterwork weapons, but none of the armour articles. I don&#39;t use the optional armour maintenance rules on page 133 personally, so HMK Toolkit doesn&#39;t track armour &lt;em&gt;quality&lt;/em&gt;. Masterwork armour articles &lt;em&gt;do&lt;/em&gt; have increased armour values every two steps though. Of course the MW version has a social effect.&lt;/p&gt;
&lt;h2 id=&quot;feature-complete&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk05/#feature-complete&quot;&gt;Feature Complete&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;With this latest release, I think HMK Toolkit is feature complete. What that means is that I think that there aren’t any more features to add. I will, of course, fix bugs and perhaps add a few missing items as needed, but I don&#39;t think I will add any new features. I will also make sure it works with future macOS releases.&lt;/p&gt;
&lt;p&gt;I must say the response to version 1.1 was not totally as I expected it. It’s only been one week as I write this, so I need to give it more time, but, at the moment, there has been zero reaction on the discord dedicated to the app aside from a couple emojis in the last few days.&lt;/p&gt;
&lt;p&gt;To put things in context, as of version 1.1, the code base for HMK Toolkit stood at 54,999 lines of code. This last update to 1.1.1 brings it up to 60,529 lines of code. This is represented by only two lines in the release notes (PDF export and masterwork armour articles), but it&#39;s a huge amount of work on my part, and that&#39;s not considering updating the online documentation.&lt;/p&gt;
&lt;p&gt;Don&#39;t get me wrong, making a public version was very rewarding on many counts. It pushed me towards making a better application. And making the online documentation is a great &amp;quot;rubber ducking&amp;quot; exercise, which often made me realize mistakes or omissions I had made. I also had great feedback from a few people in the beginning.&lt;/p&gt;
&lt;p&gt;But it also took a lot longer than if I had only made this for myself. In any case, I am very proud of what I accomplished, and I am very happy if it helps even one person.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>HMK Macros for Foundry VTT</title>
    <link href="https://hexaedre.com/hmk06/" />
    <updated>2025-11-10T05:00:00Z</updated>
    <id>https://hexaedre.com/hmk06/</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk06/zs2o5mpKhu-2608.webp 2608w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk06/zs2o5mpKhu-2608.png&quot; alt=&quot;Part of the code, in javascript, for the attack macro for FoundryVTT.&quot; width=&quot;2608&quot; height=&quot;1584&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;combat-macro&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk06/#combat-macro&quot;&gt;Combat Macro&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;I&#39;m starting to prepare for my HarnMaster Kethira campaign. At the moment there are no HMK systems in any of the VTT. There is one in development for FoundryVTT, but it&#39;s not ready yet, and the developer has had health issues this past year so it&#39;s uncertain when it will be ready. There is one planned for Roll20, but its development has not yet started. So in the meantime, I&#39;ve decided to use the &lt;em&gt;Simple World-Building&lt;/em&gt; system just so that the players can have tokens on the map and use macros for combat rolls. They&#39;ll have their character sheet in editable PDF form, and I&#39;ll have my trusty &lt;a href=&quot;https://hexaedre.com/apps/hmk/&quot;&gt;HMK Toolkit&lt;/a&gt; to handle Initiative Rating Tracking, their character sheets, price list, etc.&lt;/p&gt;
&lt;p&gt;I want to prepare in advance a series of macros for each character. So I made a JavaScript macro for combat. Here is a quick demo.&lt;/p&gt;
&lt;div id=&quot;wiYuJNwyB3k&quot; class=&quot;eleventy-plugin-youtube-embed&quot; style=&quot;position:relative;width:100%;padding-top: 56.25%;&quot;&gt;&lt;iframe style=&quot;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;&quot; width=&quot;100%&quot; height=&quot;100%&quot; frameborder=&quot;0&quot; title=&quot;Embedded YouTube video&quot; src=&quot;https://www.youtube-nocookie.com/embed/wiYuJNwyB3k&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;It&#39;s a simple macro but I think it will help a lot during combat. You can configure the default parameters at the top of the code, so you can use the same macro for attacks with different weapons or counterstrikes, for example.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk06/ufvzBjafWP-1066.webp 1066w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk06/ufvzBjafWP-1066.png&quot; alt=&quot;The defaults parameters in the combat macro.&quot; width=&quot;1066&quot; height=&quot;560&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;When you invoke the macro, a dialog will appear, which lets you change any parameter, including a modifier like fatigue or situational modifiers.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk06/QvDVmgg0eZ-800.webp 800w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk06/QvDVmgg0eZ-800.png&quot; alt=&quot;The macro dialog where you can change the parameters and include an EML modifier.&quot; width=&quot;800&quot; height=&quot;728&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;And a chat card will appear when you roll. If the roll is a success, it offers a button to roll the zone, location, and impact dice all at once.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk06/mX2x2wzkbR-580.webp 580w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk06/mX2x2wzkbR-580.png&quot; alt=&quot;The success result of the combat macro.&quot; width=&quot;580&quot; height=&quot;436&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk06/_jAOwf82XB-578.webp 578w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk06/_jAOwf82XB-578.png&quot; alt=&quot;The results of the zone, location, and impact rolls.&quot; width=&quot;578&quot; height=&quot;1066&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;skill-test&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk06/#skill-test&quot;&gt;Skill Test&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk06/wnKEM9iZJm-906.webp 906w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk06/wnKEM9iZJm-906.png&quot; alt=&quot;The macro bar with the block macro highlighted.&quot; width=&quot;906&quot; height=&quot;220&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I include an attack, a block, and a counterstrike macro for each weapon. Since a block is just a skill test, I made a simpler skill test without the additional dice. This can be used for any skill test, and it lets you enter an EML modifier like the combat macro.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk06/6ctzv9rqL4-574.webp 574w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk06/6ctzv9rqL4-574.png&quot; alt=&quot;The result of a sword block.&quot; width=&quot;574&quot; height=&quot;412&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;using-the-macros&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk06/#using-the-macros&quot;&gt;Using the macros&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Both macros are available as a single download on my &lt;a href=&quot;https://hexaedre.com/hmk/#my-resources&quot;&gt;resource page&lt;/a&gt;. It&#39;s a .zip file, which contains 2 JavaScript files. Simply open them in a text editor, copy the content and paste it into a Foundry VTT &#39;script&#39; macro. Change the default parameters at the top and save.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>The 1.1-year update</title>
    <link href="https://hexaedre.com/hmk04/" />
    <updated>2025-11-07T20:04:18Z</updated>
    <id>https://hexaedre.com/hmk04/</id>
    <content type="html">&lt;p&gt;I started developing &lt;a href=&quot;https://hexaedre.com/apps/hmk/&quot;&gt;HMK Toolkit&lt;/a&gt; exactly 1.1 years ago today, with the initial goal of creating a tool to facilitate step 12 of the character creation process: the skills development points phase. I kept changing my mind, and I couldn’t remember whether I had already spent one or two DPs, nor in which stage I had spent them. I also wanted to see all the Skill Bases so that I could get a sense of my character’s strengths, which would help guide my choices. So, I decided to build myself a tool to help me with this development step.  But to build that tool, and make it useful, I needed the character&#39;s attributes, and to get the attributes I needed at least part of a character sheet...&lt;/p&gt;
&lt;p&gt;And, &lt;strong&gt;1.1 years later, this is the new version 1.1 of &lt;a href=&quot;https://hexaedre.com/apps/hmk/&quot;&gt;HMK Toolkit&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk04/vReXslLZAE-2760.webp 2760w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/vReXslLZAE-2760.png&quot; alt=&quot;The first page of a character named Hildegard who is an Odívshè Shèk-Pvâr.&quot; width=&quot;2760&quot; height=&quot;2510&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;And the development tool that started it all is now looking like this.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk04/zCZzXEg0j_-3252.webp 3252w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/zCZzXEg0j_-3252.png&quot; alt=&quot;The DEV tool.&quot; width=&quot;3252&quot; height=&quot;2490&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;h2 id=&quot;whats-new&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk04/#whats-new&quot;&gt;What&#39;s New&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;For the last five months, I have worked on a new feature for HMK Toolkit called the &lt;strong&gt;Price Cyclopedia&lt;/strong&gt;. It&#39;s a bit of a grandiose title, but I believe that it accurately reflects the comprehensive nature of this searchable price list, which boasts over 1,000 entries. Users can search by the name of the item or service, its category, or the specific shop where it is sold. The complexity of pricing has proven to be a significant challenge, as I have encountered numerous special cases that required careful consideration and implementation. I also tried to update the PDF version simultaneously, but I have now decided to do so only once this release is complete.&lt;/p&gt;
&lt;p&gt;For more information you can read the &lt;a href=&quot;https://hexaedre.com/apps/hmk/price/&quot;&gt;Price Cyclopedia documentation&lt;/a&gt;.&lt;/p&gt;
&lt;figure&gt;
    &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/V7eDAPrJvA-2240.webp 2240w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/V7eDAPrJvA-2240.png&quot; alt=&quot;The Price Cyclopedia window showing a first aid service.&quot; style=&quot;border-radius: 8px; margin: 0 auto; display: block;&quot; width=&quot;2240&quot; height=&quot;1656&quot;&gt;&lt;/picture&gt;
    &lt;figcaption color:=&quot;&quot; black;&quot;=&quot;&quot;&gt;First Aid has a both a price range and a &#39;+&#39;. This is handled with a price slider.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
    &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/zxzeAtkGy_-2240.webp 2240w&quot;&gt;&lt;img 4=&quot;&quot; src=&quot;https://hexaedre.com/img/zxzeAtkGy_-2240.png&quot; alt=&quot;The&quot; Price=&quot;&quot; Cyclopedia=&quot;&quot; window=&quot;&quot; showing=&quot;&quot; buying=&quot;&quot; a=&quot;&quot; carat=&quot;&quot; gem.&quot;=&quot;&quot; style=&quot;border-radius: 8px; margin: 0 auto; display: block;&quot; width=&quot;2240&quot; height=&quot;1656&quot;&gt;&lt;/picture&gt;
    &lt;figcaption color:=&quot;&quot; black;&quot;=&quot;&quot;&gt;When buying a gem you can set the number of carats (instead of the number of gems).&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure&gt;
    &lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/img/xb-azdTQ-6-2240.webp 2240w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/img/xb-azdTQ-6-2240.png&quot; alt=&quot;The Price Cyclopedia window showing adding an AS8 Darkvision elixir.&quot; style=&quot;border-radius: 8px; margin: 0 auto; display: block;&quot; width=&quot;2240&quot; height=&quot;1656&quot;&gt;&lt;/picture&gt;
    &lt;figcaption color:=&quot;&quot; black;&quot;=&quot;&quot;&gt;When adding an elixir you can set the Alchemical Strength (AS8 in the example). The &#39;Don&#39;t manage coins&#39; is checked because this is the alchemist character who made the elixir, so he&#39;s only adding the item to his bandolier belt, he is not buying it. The &#39;Add note&#39; is checked which means that the date he made the elixir will be added to the character&#39;s sheet, so he&#39;ll know when to do the first AS reduction roll in 30 days.&lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;While I was working on the main new feature, I also happened to fix many other things and add several smaller features and quality-of-life improvements to other areas of the app. Here are a few key points.&lt;/p&gt;
&lt;p&gt;I was inspired by the &lt;strong&gt;Shield Traits Summary&lt;/strong&gt; explained in the excellent &lt;a href=&quot;https://www.kelestia.com/expansions&quot; rel=&quot;noreferrer nofollow noopener external&quot; target=&quot;_blank&quot;&gt;Advice &amp;amp; Options&lt;/a&gt; document from Kelestia, and I have implemented it in the app. I also automatically display a &lt;strong&gt;Thrown Weapons&lt;/strong&gt; section if the character carries one of the listed weapons on page 110 of the rulebook (javelin, shorkana, etc.) or an elixir or a mixture. It might be useful to mention that all that information is displayed automatically when you simply drag and drop weapons and shields into the character’s equipment.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk04/oKp0Z-r3sz-988.webp 988w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/oKp0Z-r3sz-988.png&quot; alt=&quot;The Combat Gear section showing the new shield data displayed.&quot; width=&quot;988&quot; height=&quot;938&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I invested a great deal of time improving the &lt;strong&gt;Initiative Rating Tracker&lt;/strong&gt;. This tool allows you to create detailed notes for encounters, which you can easily load during play. A new side panel provides access to frequently used rules, making it easier to manage the melee routine.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk04/mlVigcpcMh-2608.webp 2608w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/mlVigcpcMh-2608.png&quot; alt=&quot;the Initiative Rating Tracker.&quot; width=&quot;2608&quot; height=&quot;2536&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk04/yP-XR9rdp6-2558.webp 2558w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/yP-XR9rdp6-2558.png&quot; alt=&quot;the Initiative Rating Tracker.&quot; width=&quot;2558&quot; height=&quot;2536&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I added an easy way to &lt;strong&gt;modify Weapon Quality&lt;/strong&gt; when a weapon is damaged or repaired.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/ogvhq4jFJ6-800.webp&quot; alt=&quot;Modification of the WQ.&quot; width=&quot;800&quot; height=&quot;353&quot;&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;notes section is now a text editor&lt;/strong&gt; with markdown formatting.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk04/xFxLWqh07U-1008.webp 1008w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/xFxLWqh07U-1008.png&quot; alt=&quot;The notes section showing rich text formatting.&quot; width=&quot;1008&quot; height=&quot;270&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Talent Bonus for spells are now supported&lt;/strong&gt; and Shèk-Pvâr characters can have a &lt;strong&gt;Focus&lt;/strong&gt; which automatically affects MLs.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk04/TeLUiRX7Pl-754.webp 754w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/TeLUiRX7Pl-754.png&quot; alt=&quot;A Shèk-Pvâr Focus.&quot; width=&quot;754&quot; height=&quot;542&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;Alchemists can easily &lt;strong&gt;handle Alchemical Strength reduction&lt;/strong&gt; for their elixirs.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/R0AWxi1IEF-712.webp&quot; alt=&quot;An elixir having its Alchemy Strength reduced.&quot; width=&quot;712&quot; height=&quot;308&quot;&gt;&lt;/p&gt;
&lt;p&gt;The new &lt;strong&gt;Trekking&lt;/strong&gt; panel has travel &lt;strong&gt;movement rates&lt;/strong&gt; and required &lt;strong&gt;Bearing Modes&lt;/strong&gt; for the topography and terrain, and a &lt;strong&gt;guide suggestion&lt;/strong&gt; with assistance from party members for the &lt;strong&gt;orienteering roll&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk04/ANkP63G3zE-3220.webp 3220w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/ANkP63G3zE-3220.png&quot; alt=&quot;the Trekking panel.&quot; width=&quot;3220&quot; height=&quot;2076&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;dark mode&lt;/strong&gt; colours were tweaked throughout.&lt;/p&gt;
&lt;p&gt;&lt;picture&gt;&lt;source type=&quot;image/webp&quot; srcset=&quot;https://hexaedre.com/hmk04/raXypZNEc9-2832.webp 2832w&quot;&gt;&lt;img src=&quot;https://hexaedre.com/hmk04/raXypZNEc9-2832.png&quot; alt=&quot;Dark mode.&quot; width=&quot;2832&quot; height=&quot;2520&quot;&gt;&lt;/picture&gt;&lt;/p&gt;
&lt;p&gt;I updated (and improved) all the &lt;a href=&quot;https://hexaedre.com/apps/hmk/help/&quot;&gt;documentation&lt;/a&gt; and revamped the &lt;a href=&quot;https://hexaedre.com/apps/hmk/&quot;&gt;landing page&lt;/a&gt; for the app.&lt;/p&gt;
&lt;h2 id=&quot;whats-next&quot; tabindex=&quot;-1&quot;&gt;&lt;a class=&quot;header-anchor&quot; href=&quot;https://hexaedre.com/hmk04/#whats-next&quot;&gt;What&#39;s next&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Version 1.1 is, I think, complete for the most part. I want to add Masterwork armour articles, and possibly PDF Export, although that is not easy to implement so I am not sure if I can make it work. Aside from that I will of course fix bugs and tweak small things.&lt;/p&gt;
&lt;p&gt;I can now turn to starting my own HMK campaign!&lt;/p&gt;
</content>
  </entry>
</feed>