The Expanding Frontier

Creating Sci-fi RPG Resources

  • Home
  • Order a Map
  • Order Miniatures
  • Supporters
  • About
  • Bio

Tag Archives: game aid

Detailed Frontier Timeline – FY61.294 to FY61.325

A new year and here’s the recap of the details happening in the Frontier over the past month.

The beginning of the month was the final battle of the initial sathar foray into the Frontier. There could have been a couple more but the sathar, being significantly outgunned, decided to fall back and retreat. Another sathar starship construction center joins the war effort and this month sees a lot of repositioning of ships as well as reclaiming control of the Liberty system. The sathar are getting ships into position for another major push in the coming month.

Early in the month, I started reporting all the movement of ships in and out of the UPF starship construction centers as Spacefleet took control of their operations. By mid-month, I realized that was a little much and scaled it back only reporting ships completed or started for Spacefleet and the militias. All the commercial construction and maintenance will not be mentioned.

Date (FY)Events
61.295– The HSS History’s Hope safely arrives in YS06 and begin working on a jump to the YS07 system.

– The CMS Osprey arrives back at Clarion and is quickly admitted into the shipyards for repair.

– TF Cassidine jumps into the K’aken-Kar system and begins decelerating toward Ken’zah-Kit.  Once again they won’t make the initial engagement arriving a few days too late.  However, they are determined to stop the sathar here if PG Meteor and the militia ships cannot.

– 15 HS of space opens in the CDC shipyards (Triad, Cassidine). Spacefleet starts construction on another light cruiser to finish filling the holes in their ranks and allows the Truane’s Star militia to begin construction of a final assault scout.
61.296– With the loss of the Liberty system, and the massive losses in the initial foray into the Frontier, sathar forces and production from SCC#10 are committed to war effort against the Frontier.  This adds 9 fighters, 3 FF, 5 DD, 3 LC, 2 HC, and 2 AC to the sathar roster in addition to the SCC’s production capacity.

– The CMS Osprey emerges from the Clarion shipyards fully repaired and ready for action once again.  A small HS:4 yacht is moved in the SCC for maintenance.

– Battle of Ken’zah-Kit (K’aken-Kar) – The sathar obliterate the station with a single concentrated barrage but then are quickly destroyed by the combined UPF and militia forces.  Besides the station, only a single militia assault scout was lost with damage to three other ships that will require time in a shipyard to repair.

– Sathar SCC#4 (OFS111) completes construction of a new frigate.

– Realizing that SF Nova will reach New Pale in time for the battle, and having a nearly 2:1 hull disadvantage against SF Nova, PG Virgo, and the remaining Truane’s Star militia, SBF-E2 reverse course and start plotting a jump back to Zebulon.

– 12 HS of space opens up in the CDC SCC (Triad, Cassidine).  Construction is begun on two new assault scouts to replace those lost by the Kizk-Kar militia.  The remaining space is given over to a HS:6 ship for annual maintenance.

– 22 HS of space opens up in the PGC shipyards (Gran Quivera, Prenglar).  With Spacefleet’s immediate needs being met, they move two HS:11 ships in for maintenance.
61.297– SF Nova arrives in orbit around New Pale.  The crew spends the day resting from their hard trip as they watch the sathar begin to fall back.  The remaining ships of PG Virgo are absorbed into the Strike Force.

– The White Light militia jumps back to their home system and begins deceleration toward Clarion.

– The UPF minelayer jumps into the Fromeltar system and begins decelerating to join up with the militia forces holding that system.

– With the loss of SBF-C1 in the K’aken-Kar system, and recognizing that they are out gunned by the UPF forces there, SBF-B2 does not jump to K’aken-Kar but begins decelerating back toward Kawdl-Kit in the K’sta-Kar system.

– With its engines repaired, SF Nova’s assault carrier, together with its four surviving fighters, begin a high-speed jump to catch up with the main group.  At the same time PG Virgo’s carrier, leaving its 3 fighters behind, begins a transit back to Prenglar.

– The newly constructed sathar frigate at SCC#4 (OFS111) begins a transit to SCC#5 (OFS019)

– SBF-J1 (1 AC, 1 HC, 2 LC, 1 DD, 1FF, & 8 fighters) departs SCC#10 and begins a high-speed transit that will eventually take it to K’sta-Kar.

– SBF-J2 (1 HC, 1 LC, 3 DD, 2 FF) departs SCC#10 and begins a high-speed transit to the Liberty system.

– 8 HS of space opens in the Hentz (Araks) SCC for a total of 9 HS of open space.  A small HS:9 freighter is moved in for maintenance.

– SBF-E1 jumps back into the Kazak system.  They do not slow down and start plotting a jump back to SSC#5 in the OFS019 system.

– An additional 13 HS of space opens in the Hentz (Araks) SCC.  A HS 11 mining ship is moved in for annual maintenance.
61.298– After rearming the ships in the K’aken-Kar system, TF Cassidine and PG Meteor begin accelerating for a jump to the K’sta-Kar system to confront SBF-B2 or drive it out of the system.

– The damaged ships (a frigate & assault scout from PG Meteor and the surviving K’aken-Kar assault scout), designated Repair Group (RG) One are ordered to Fromeltar for repairs. They begin accelerating for a jump to Kizk-Kar.

– 13 HS of space opens in the PGC shipyards (Gran Quivera, Prenglar).  A HS:12 ship is moved in for maintenance.
61.299A small group of 8 civilian privateer vessels, hailing from the yazirian worlds of the Frontier and calling themselves the Yazira Squadron, arrive in orbit around Morgaine’s World (Prenglar) and request permission to assist Starfleet in the fight against the sathar.
61.300– The HSS History’s Hope arrives in the YS07 system and begins decelerating toward the inner system.  Back at the last system explored, they plan to spend a few days resting here before starting to chart new routes toward their destination.

– SBF-E2 jumps back into the Zebulon system and starts decelerating toward Volturnus.

– SBF-B2 settles back into a high orbit around Kawdl-Kit (K’sta-Kar).

– SBF-E1 jumps back into the OFS019 system and begins decelerating toward the starship construction center there for repairs.

– 8 HS of space opens in the PGC shipyards in Gran Quivera (for a total of 9 HS of space available).  A HS:9 ship is moved in for maintenance.
61.301– Worried that since the sathar have a route into Prenglar they may also have one to Gruna Garu, Spacefleet sends the Yazira Squadron back to Gruna Garu to bolster the defenses there.

– With the sathar mostly on the retreat at the moment, and based on the success of the fighters and assault scouts in the recent engagements, Spacefleet announces the creation of the Frontier Fighter Corps with a plan to station multiple squadrons of fighters in every system of the Frontier.

– As the first step of implementing the Frontier Fighter Corps, all currently available space in the Type I and II shipyards around the Frontier are used to start construction of new fighters.  At the moment that means 2 are started in Hentz (Araks) and 2 in Minotaur (Theseus).
61.302– The White Light militia arrive back in orbit around Clarion.

– The UPF minelayer arrives in orbit around Terledrom, joining up with the Fromeltar and Dramune militias.

– SF Nova’s Assault carrier jumps into the Dixon’s Star system and starts working on calculations for the jump to Truane’s Star.  The carrier leaving PG Virgo also arrives in the system and starts working on calculations for the jump to Prenglar.

– The lone sathar frigate jumps into OFS110 and begins calculations for a jump to OFS022.

– SBF-J1 jumps into the OFS170 system and begins calculations for a jump to OFS169.

– SBF-J2 jumps into the OFS177 system and begins calculations for a jump to the Dayzer system (OFS178).

– Sathar SCC#5 (OFS019) completes construction of a cutter.
61.303– SBF-J1 jumps into the OFS169 system and begins calculations for a jump to the OFS167 system.

– Task Force Cassidine and PG Meteor jump into the K’sta-Kar system and begin decelerating toward the sathar forces orbiting Kawdl-Kit.

– RG One arrives in the Kizk-Kar system and begin engine overhauls and plotting a jump to Fromeltar.

– 11 HS of space open up in the Triad (Cassidine) SSC.  Work is begun on 11 fighters for the newly formed Frontier Fighter Corps.  There are complaints that over half the SCC’s capacity are being used for Spacefleet but Spacefleet points out that some of that usage if for planetary militias as well.

– Deciding not to wait any longer, two HS:6 ships under construction in the Pale SCC (Truane’s Star) are moved out of the shipyard by Spacefleet to make room for the damaged light cruiser.
61.304– The crew of the HSS History’s Hope start working on the next jump in their journey to a small red dwarf star.  It’s a long one, just under 12 light years long jumping a big void of stars in this region of space.  They designate their target system YS08.

– Detecting the inbound UPF forces, and recognizing that they are still outgunned, SBF-B2 decides to abandon K’tsa-Kar. They break orbit from Kawdl-Kit and begin accelerating to jump out of the system.

– 13 HS of space opens up in the Hentz (Araks) shipyard.  Two HS:5 ships are moved in for maintenance and work begins on constructing 3 new fighters.

– 4 HS of space opens up in the Clarion (White Light) shipyard and a small HS:4 ship is moved in for maintenance.

– The sathar SCC#10 (OFS174) completes construction of a fighter.
61.305– SF Nova’s assault carrier jumps into the Truane’s Star system and begin deceleration toward the rest of the Strike Force.

– The lone sathar frigate jumps into OFS022 and begins calculations for jump to OFS018.

– SBF-E1 arrives back at SCC#5 (OFS019) and is disbanded.  The work halts on the heavy cruiser currently under construction and the damaged frigate and destroyer enter the shipyard for repairs.

– 6 HS of space opens up in the CDC SCC (Triad, Cassidine), with another 17 HS opening up tomorrow, the space is held to allow some larger ships to move in for maintenance.

– 9 HS of space opens in the Terledrom (Fromeltar) SCC.  With RG One only a few days away, the space is held for those ships so that battle repairs can begin immediately when they arrive.
61.306– SBF-J1 jumps into the OFS167 system and begins calculations for a jump to the OFS166 system.

– SBF-J2 jumps into the Dayzer system (OFS178) and begins calculations for a jump to the OFS179 system.

– 11 HS of space opens in the PGC shipyards (Gran Quivera, Prenglar).  Spacefleet begins construction of 8 fighters and an assault scout using the available space.
61.307– The lone sathar frigate jumps into OFS018 and begins calculations for jump to OFS019.

– The damaged sathar destroyer under repair at SCC#5 (OFS019) is finished and emerges from the shipyard ready for battle.

– SF Nova’s assault carrier arrives in orbit around Pale and rejoins the fleet.  It collects the fighters left by PG Virgo as part of its compliment.

– The assault carrier from PG Virgo arrives back at Morgaine’s World (Prenglar).  The crew is debriefed on their trip to the Rim and recent battle at New Pale (Truane’s Star).

– After four days of round-the-clock work by the engineers from the Pale SCC and SF Nova, the light cruiser emerges from the Streel shipyards fully repaired and ready for action.  The two ships that were moved out to make room resume construction.
61.308– SBF-J1 jumps into the OFS166 system.  Upon arrival, their orders are changed, and they are ordered to proceed to SCC#3 (OFS138) instead of heading into K’tsa-Kar.  They begin plotting a jump to OFS157.

– RG One arrives in the Fromeltar system and begins deceleration toward the shipyards at Terledrom.

– Task Force Cassidine and PG Meteor arrive in orbit around Kawdl-Kit, much to the relief of the planet’s populace.

– The damaged sathar frigate under repair at SCC#5 (OFS019) is finished and emerges from the shipyard ready for battle.  The damaged heavy cruiser is moved in to begin the extensive hull repairs it needs.
61.309– SBF-J2 jumps into the OFS179 system and begins calculations for a jump to the Liberty system (FS30).

– SBF-B2 jumps into the FS33 system and begins decelerating.

– After two days rest, the assault carrier at Morgaine’s World (Prenglar) is ordered to Triad (Cassidine) to await completion of the first fighters for the Frontier Fighter Corps and then to shuttle them to the Kizk-Kar system.  It is designated Shuttle Group (SG) Alpha.

– 18 HS of space opens in the Hentz (Araks) SCC.  A HS 14 ship is moved In for maintenance.  Another fighter is started for Spacefleet and the remaining space is held for an upcoming ship maintenance.
61.310– Jump calculations complete and verified, the HSS History’s Hop starts accelerating for the jump to YS08.

– Yazira Squadron arrives back in the Gruna Garu system where they join up with the local militia to coordinate the defense of that system.

– Strike Force Nova, together with the remaining ships of the Pale militia, leave Fortress Pale and begin accelerating toward the Zebulon system to engage the sathar forces now orbiting Volturnus.
61.311– The lone sathar frigate jumps into OFS019 and begins decelerating toward SCC#5.

– SBF-J1 jumps into the OFS157 system and begin calculations for a jump to the OFS156 system.

– With the sathar apparently gone from the system, PG Meteor is ordered to the Kizk-Kar system where they will be supported by the fighters being delivered by SG Alpha and joined by their flagship, the battleship Admiral R’kazk’tar which will be completed in 33 days.
61.312SBF-J2 jumps into the Liberty system and begins decelerating toward Snowball.
61.313– PG Liberty and the Mhemne belters detect the sathar ships that have arrived in the system.  An alert is immediately sent out to Spacefleet alerting them of the sathar presence.

– RG One arrives at the Terledrom shipyards (Fromeltar).  The militia assault scout and UPF frigate are immediately moved into the shipyard to begin repairs.

– SBF-J1 jumps into the OFS156 system and begins calculations for a jump to the OFS155 system.
61.314– SBF-B2 arrives in the inner system of FS33 where they await orders from the sathar high command.

– Recognizing that they are no match for the inbound sathar forces, PG Liberty, with the assistance of the Mhemne belters, go into hiding in the Liberty system to watch the sathar’s movements.  Evacuations begin immediately on the L4 and L5 stations.

– Receiving the alert from PG Liberty, the Theseus militia ships in the White Light system depart Fortress Redoubt and begin accelerating for a jump home.
61.315– The HSS History’s Hope successfully jumps into the YS08 system.  They begin decelerating toward the inner system and working on engine overhauls.

– SBF-J1 jumps into the OFS155 system and begins calculations for a jump to OFS150.

– SF Nova and the Pale militia jump into the Zebulon system and begin decelerating toward Volturnus and the sathar forces.

– The K’akan-Kar militia assault scout completes its repairs in the Terledrom (Fromeltar) SCC.  As it emerges the UPF assault scout is moved into its place.
61.316– The sathar frigate arrives at SCC#5 (OFS019) joining up with the other ships there.

– SBF-J2 arrives in orbit around Snowball and finding the L4 station abandoned settle back into the berths there. 

– Detecting SF Nova, SBF-E2 decides to avoid engagement and departs Volturnus and begins accelerating for a jump to the Kazak system.

– PG Meteor jumps into the K’aken-Kar system and begins working on calculations for the jump to Kizk-Kar.

– The UPF frigate and assault scout complete their repairs in the Terledrom shipyard and emerge once again ready for combat.  A HS:6 ships is moved in for maintenance and Spacefleet begins construction of 3 fighters.
61.317RG One, now fully repaired, departs Terledrom for the Kizk-Kar system.  The  Spacefleet vessels will remain in that system to await the arrival of the rest of PG Meteor while the militia ship will return to its home system.
61.318– SBF-J1 jumps into the OFS156 system and begins calculations for a jump to the OFS146 system.

– SG Alpha arrives in orbit around Triad (Cassidine) just in time to pick up the five fighters completed in the CDC shipyards.  The fighters are taken aboard the assault carrier which prepares to depart for the Kizk-Kar system the next day.  Construction begins on five more fighters.

– After two days in the Liberty system, with no indication of any UPF presence, the heavy cruiser and 3 destroyers of SBF-J2 split off (now SBF-J3) and begin accelerating for a jump back to OFS179 leaving the light cruiser and 2 frigates in the system.
61.319– Arriving at the inner system of YS08, the crew of the HSS History’s Hope begin working on calculations for the return jump to YS07.

– Taking several days longer than expected, the damaged sathar heavy cruiser emerges from SCC#5 (OFS019) fully functional once again.  The hull of the heavy cruiser whose work was paused is moved back into the shipyard to resume construction.
61.320– SBF-J1 jumps into the OFS146 system and begins calculations for a jump to SCC#3 (OFS138).

– SF Nova arrives and settles into orbit around Volturnus (Zebulon).

– PG Meteor arrives in the Kizk-Kar system and begins decelerating toward Zik-Kit.

– SBF-E3 (1 C, 1 FF, 1 DD, 1 HC) departs SCC#5 (OFS019) for a jump to Kazak to join up with SBF-E2.
61.321SBF-E2 jumps into the Kazak system and begins decelerating toward Stenmar.
61.322– RG One arrives in the Kizk-Kar system and the Spacefleet vessels start decelerating toward Zik-Kit while the militia assault scouts remains at speed and prepares for a jump back to its home system of K’aken-Kar.

– A fighter for the Frontier Fighter Corp is completed in the PGC shipyards (Gran Quivera, Prenglar) and construction begins immediately on another.
61.323– The Theseus militia arrive back in orbit around Minotaur.

– SG Alpha jumps into the Dramune system and begins calculations for a jump to Fromeltar.

– SBF-J3 jumps into the OFS179 system and begins calculations for a jump to the OFS168 system.

– One of the sathar frigates in the Liberty system begins accelerating out from the inner system and appears to be on a course to jump to the Waller Nexus system. It is designated EG-1. PG Meteor could intercept from their hiding place in 2 days.

– Detecting the outbound sathar frigate, PG Liberty notifies Spacefleet and are told to let it pass but take it out if it returns to the system.
61.324– SBF-J1 jumps into the OFS138 system and begins deceleration toward SCC#3.

– PG Meteor arrives in orbit around Zik-Kit (Kizk-Kar).

– A UPF fighter is completed in the Terledrom (Fromeltar) shipyards and construction begins immediately on another.
61.325– Calculations complete, the HSS History’s Hope stars accelerating for the jump back to YS07.

– SBF-E2 arrives in orbit around Stenmar (Kazak).

– SBF-E3 jumps into the Kazak system and begins decelerating toward Stenmar and SBF-E2.

Here’s the full timeline PDF for download:

DetailedFrontierTimelineDownload
January 5, 2021 Tom Leave a comment

Maps and Counters

It has been a crazy week and I’ve not had any time to sit down and work on anything new. That should change starting today (although I have the next Frontier Explorer next looming over me still). But that doesn’t help for today’s post.

As such, I thought I’d round up all the Star Frontiers maps and counter scans that I have and make them available at one central location (namely this post). Some of these were up before and I took off-line a couple of years ago when WotC had us put the Frontier Explorer on hiatus. Others are ones I’ve done for myself or others over the years. Many of these are linked from various places around the but I’ve never really made a centralized directory.

Counters

Let’s start with the counters. I have scans of both the Alpha Dawn Counters and the Knight Hawks counters at a number of different resolutions. You can download the ones you want to use. Most of these are saved as .PNG files which is a lossless compression format, as opposed to JPEG which is lossy. That means that the files are going to be fairly large, especially at the higher resolutions, and that you get all the detail from the original counters.

AD Counters

I’ve never really scanned in the AD counters. I found a good scan of them years ago and have always just used those. One of these days I’ll get around to making my own scans from like-new, unpunched counter sheet that I have. But until then, this one is quite good.

  • An older scan (by someone else) stored in JPG format (400 DPI – 2.7MB)

KH Counters

  • Full Sheet – 100 DPI (1.3 MB)
  • Full Sheet – 200 DPI (5.4 MB)
  • Full Sheet – 300 DPI (16 MB)
  • Full Sheet – 400 DPI (23 MB)
  • Full Sheet – 600 DPI (46 MB)

I’ve also made a zip file (1.1 MB) with all of the KH counters (and a few of the AD ones) cut out at 100 DPI that you can download. Additionally, you can get the individual counters from that zip file (and a link to the file as well) on this page.

Maps

That’s all the counters. Over the years I’ve done a number of maps as well. Some of them are already linked and shared here on this blog. Others, mostly recreations of the original maps from the game, I’ve posted in various locations around the web as I’ve created them.

Scans

First, let’s look at a couple of scanned maps. Namely the cover maps of SF0: Crash on Volturnus that give the deck plans of the Serena Dawn and the surface map of Volturnus. I have both of these as either PNG (full resolution) or JPG (smaller size).

  • Serena Dawn – full – PNG (3.8 MB)
  • Serena Dawn – full – JPG (492 kB)
  • Volturnus – full – PNG (3.9 MB)
  • Volturnus – full – JPG (607 kB)

I have scans of the Port Loren map from the Alpha Dawn rules and the station map from the Knight Hawks rules but I’ve also created remastered versions of those which are much better. We’ll look at those below.

I also have a scan of the Frontier Deployment Map which is the outside cover of the SFKH1: Warriors of White Light module and is used in the Second Sathar War strategic game from the Knight Hawks Campaign Book. This one is just saved as a JPG.

  • Frontier Deployment Map – JPG (360 kB) – Roughly 100 DPI

Finally, I have the two halves of the Zebulon’s Guide to Frontier Space map of the Frontier. I never actually stitched these two together. These are stored as BMP (bit map) files, another lossless compression algorithm. I don’t think I did the original scans and don’t remember where I got them from.

  • Zeb’s Guide map – left half (5.5 MB)
  • Zeb’s Guide map – right half (5.5 MB)

Remastered

Let’s look at my remastered maps. These are maps that I’ve recreated as original digital creations. Most of these maps were created as scalable vector graphics (SVG) files and then exported as PNGs at 100 DPI which was more than enough resolution for what was drawn. I can always re-export them at any resolution I want.

Let’s start with the big maps. These are all 50 pixels to the square and two squares to the inch. These are faithful recreations of the original maps matching colors, fonts, shapes, etc. as close as I could get them.

  • Port Loren map – (990 kB) – This is the big poster map from Alpha Dawn
  • Station map – (1.68 MB) – This is the big station complex on the back of the space map from the Knight Hawks set.
  • Station Commercial – no cut (1.7MB) – This is the left half of the station map including the bit of the zoo area cut off by the diagonal zig-zag.
  • Station Residential – no cut (175 kB) – This is the right half of the station map including the bit cut off by the diagonal zig-zag.
  • Port Loren Starport map (539 kB) – I created this remastered version to match the same colors and styling as the original Port Loren map, but the design of the map was done by someone else, whose name I can no longer find. If anyone knows the original creator, let me know.

Those are the main maps on the two posters. I’ve also done some of the smaller maps from the posters as well

  • Town map – (16 kB) – this was used for “Slave City One” from the module SF1: Volturnus, Planet of Mystery. I actually recreated it for an adventure we published in issue 1 of the Frontier Explorer.
  • Assault Scout Deck Plans – green (26 kB) – This is from the Knight Hawks poster map and is a remastered version of the original assault scout deck
  • Assault Scout Deck Plans – blue (29 kB) – The same as above but blue.
  • Knight Hawks battle map – black on white (40 kB) – A computer generated hex grid matching the KH battle map, including hex numbers. This one is black lines on a white background
  • Knight Hawks battle map – white on black (40 kB) – Same as above but with the colors inverted.

Finally, I have a set of maps that were created by Tom Verreault. One is a remastered version of the mountain terrain map from the back of the big AD poster map. The others are an expanded area that connect the first one and then a big map of all four together as a single file.

  • Mountain A map (31 kB)
  • Mountain B map (39 kB)
  • Mountain C map (45 kB) – this is the original from the AD map
  • Mountain D map (32 kB)
  • Full map (81 kB) – The four maps above combined

Final Thoughts

I hope you can find these useful. I probably have a few more that I’m not finding at the moment. If I do find others, I’ll update this post or make another one. I do have a number of other image and logos I’ve created over the years. I considered adding them here but decided they really deserve their own post so look for those in the future.

Some day I plan on remastering all the terrain maps from the back of the AD map but I’ve just never gotten around to it.

September 22, 2020 Tom Leave a comment

Detailed Frontier Timeline – FY 61.173 to FY 61.203

This was a rough month for getting the timeline posts out on Twitter. I was doing good and had them all scheduled up through my vacation, but then when I got back, completely dropped the ball for the rest of the month. Mainly do to being swamped by dealing with the loss of my truck and getting it replaced. In fact, I’m still getting caught up and some of the events in this post won’t make it up until later today.

This was another busy month in the timeline with several threads overlapping including the completion of the Dramune Run and Mutiny on the Eleanor Moraes module events, and the beginning of the Face of the Enemy module events. Additionally, the last saurian Ark Ships leaves their home system and the saurians make contact with the Frontier.

Here’s the events of the last month:

Date (FY)Events
61.173– The Osprey departs Minotaur (Theseus) for their jump to the Padda system.

– The sathar vessels overtake the 8th Ark Ship just hours before it is ready to jump.  The escort vessels, combined with the defenses of the Ark Ship, put up a heroic defense. 

– The escort vessels sacrifice themselves to ensure the escape of the Ark Ship and manage to damage the pursuing sathar vessels enough that the Ark Ship, while severely damaged itself, can escape their pursuers and slip alone into the Void.  They arrive safely in OFS191.
61.174– Decelerating toward the inner regions of the OFS191 system, the 8th saurian Ark Ship begins scanning the binary star system. 

– After being sedated and interrogated for 10 days, the crew of the Gullwind is taken to meet with the Malthar.  On the return to their cells, their guards are set upon by chukkahs running free in the station.  They escape to the docking bay where the Gullwind is being held. (SFKH1)

– Next to the Gullwind’s bay, the crew discovers a room with cages of imprisoned chukkahs and transport containers for them.  Loading as many as they can into the transport containers and on to the Gullwind, they then depart the station just as a swarm of combat robots attack the ship. (SFKH1)

– As the Gullwind departs Darkworld station, the Malthar’s ships pursue and attempt to destroy the vessel.  The fight is quickly joined by both the Inner Reach militia and the elements of Strike Force Nova (LC, 2xFF, 4xAS) in the system.   (SFKH1)

– With the Spacefleet ships quickly turning the tide of the battle, the pirate and Outer Reach militia ships scatter.  The Third Dramune War is over. (SFKH1)
61.175– Arriving at Inner Reach, the crew of the Gullwind give a full report to the Inner Reach Government and Spacefleet on their discovery and the events of the Dramune Run.  The crew discovers that Garlus left the Gullwind to them in his will.

– After a quick resupply, the element of SF Nova that survived the battle depart for the Fromeltar system to rejoin the Strike Force.
61.176– Just a few hours before making the jump to the Padda system, the CMS Osprey detects unknown radio signals in the outer system.  The ship’s energy sensors confirm several faint sources in the same direction.  They have passed close to the saurian Ark Ship and its escorts and detected some intership communications.

– The CMS Osprey attempts to contact the unknown radio source but receives no response. They radio the contact back to Minotuar and continue on their way to the Padda system.

– After analyzing the report from the CMS Osprey, the destroyer, frigate, and two assault scouts of the Theseus milita begin boosting toward the location of the contact.
61.177– The HSS History’s hope arrives back in the YS07 system and begins deceleration. Unfortunately, all jumps forward from here are 10-12 light years long.  The team begins weighing which of the five systems would make the most sense for progress beyond it.

– The CMS Osprey successfully jumps to the Padda system.  They immediately begin working on the jump calculations to the Waller Nexus system while not slowing down, only angling their vector toward that system.

– The saurians detect the militia ships traveling toward them. Given their analysis of the radio signals collected so far from the system and the CMS Osprey, they believe the species living here are not allied with the Sathar and decide to risk communication.
61.178– With the militia ships only a day away and now decelerating toward their location, the saurians open communications, attempting to contact the approaching ships.  The Theseus militia receives the communication attempt and responds in kind. They also notify Minotaur of the development.

– While initial communication between the saurians and UPF is difficult, both due to the long light delay as the signals travel between the ships, and the lack of a common language, progress is made as the distance between the ships decrease and the saurians’ computers translate Pan-Gal into saurian.
61.179– The Theseus militia ships arrive at the location of the saurian Ark Ship and its escorts. They are impressed by the design of the saurian Battle Rays and the sheer size of the Ark Ship itself. 

– Rudimentary communications between the saurians and Frontier races are established and the story of the saurians’ flight are related to the crews of the UPF ships.  This information is relayed back to Minotaur.

– The Minotaur government notifies the UPF Council of Worlds via subspace radio of the detection of the saurian vessels and their contact with them.

– The detachment of SF Nova arrives in the Fromeltar system from Dramune.  The remainder of the Strike Force beings accelerating for a jump to the Kizk-Kar system.
61.180– Having found no suitable planets in the OFS191 system, the 8th saurian Ark Ship begins accelerating for a jump to the OFS179 system.

– The Council of Worlds temporarily suspends all other deliberations to discuss and debate what to do about the saurians.
61.181– Having picked a system as their next target, and with deceleration complete, the crew of the HSS History’s Hope begin work on jump calculations for the next leg of their journey, a M5 dwarf 12 light years away.

– The detached ships from SF Nova rejoin the main group as it accelerates toward Kisk-Kar.
61.182– Calculations complete, the CMS Osprey jumps into the Waller Nexus system and begins decelerating toward Mahg Mar.  They radio the UPFS Eleanor Moraes to establish communication with the downed ship.

– The UPFS Elanor Moraes responds to the hail from the CMS Osprey and transmit the survey data they have collected along with coordinates for the Osprey to find the Moraes.
61.183As the Council of Worlds continue discussion, the Minotuar (Theseus) government, under pressure from many of the citizens of their world, invite the saurians to bring their ships into the inner system. 
61.184– While working on jump calculations and surveying the YS07 system, the radar system on the HSS History’s Hope suddenly stops working.

– As the engineers begin to work on HSS History’s Hope’s radar, they realized that they have been out so long that they have missed their annual maintenance.  They discover several other systems that may cause problems in the future.

– With it being about 100 days to make a high speed transit, perform the maintenance, and return to their current location, the HSS History’s Hope crew must decide if they should return or press forward with an increased chance of breakdowns in future jumps.
61.185– After two days of internal debate, the saurians begin accelerating toward Minotaur, escorted by the militia ships.

– The 8th saurian Ark Ship successfully jumps to the OSF179 system.  The immediately detect a beacon left by the 7th ark ship indicating that the system had been surveyed but nothing suitable found.  Deciding that the neutron star in OFS192 is a non-starter, they begin plotting a course to FS58 and shifting their vector for the jump.
61.186– After four days of deceleration, the Osprey settles into orbit around Mahg Mar (Waller Nexus).  After a couple of orbits to orient their mapping systems, they locate the UPFS Elanor Moraes and descend to the planet’s surface, landing just a few hundred meters from the survey vessel.

– With repairs still ongoing on the HSS History’s Hope’s radar system, the crew comes down on the side of caution and decide to return to Scree Fron for maintenance.  The calculations for the jump forward are aborted and calculations are started to jump back to YS06.
61.187With the arrival of the CMS Osprey and the supplies it brought, the repairs on the UPFS Eleanor Moraes begin to progress much quicker.  Captain Dentin takes command of the expedition and begins sending out the survey robots to scout the surrounding terrain.
61.188– SF Nova arrives in orbit around Zit-kit In the Kisk-Kar system.  They will remain here for 6 days.

– The saurian ships settle into orbit around Minotaur (Theseus).  Constant holovid coverage has greatly increased the public interest in these strangely graceful ships.
61.189– The Theseus militia establishes a “no fly” zone around the saurian vessels to keep away all the curious onlookers attempting to visit and observe the ship up close in their small shuttles and private yachts.

– Having discovered what appears to be some sort of village about 30 km away members of the Moraes crew are sent by Captain Dentin to investigate with the Osprey crew continues working on the repairs. (SFKH3)
61.190– The two newest assault scouts for SF Meteor arrive at Gollwin Station orbiting Morgaine’s World (Prenglar).  They are debriefed and join with their fellow assault scouts and formed into Patrol Group Meteor until the capital ship complete construction.

– About 3/4 of the way to the village the crew of the UPF Eleanor Moraes discover a strange, small vehicle containing the bodies of two dead sathar and what appears to be a small, functioning robot.  They radio the find back to the Osprey which sends out another team to collect the vehicle. (SFKH3)

– With about 3 km left to the village, the Moraes crew reaches a tall cliff that their explorer cannot climb.  They need to continue the rest of the way on foot.  They camp at the base of the cliff for the night. (SFKH3)
61.191– The saurians agree to send an envoy to meet with members of the Minotaur government aboard Minotaur station.  They request that the captains of the militia vessels they had met originally be present at the meeting.

– Security is enhanced on Minotaur station in preparation for the historic first meeting with the Saurians.  Several protest groups are dispersed that were threatening to become violent.

– As the crew of the UPFS Eleanor Moraes reach the top of the cliff, a strange, birdlike creature briefly emerges from the underbrush and then disappears again. The crew can see it crouching in the bushes and decide to wait to see what happens. (SFKH3)

– After a several minutes, the creature emerges again from the underbrush and begins trying to talk to the Moraes crew.  Establishing some basic communication with the aid of a polyvox, the creature, Beet-Chest, begins leading them to his village. (SFKH3)

– Meeting with the village elders, the Moraes crew learn that the sathar had arrived on the planet about 3 months ago and 2 sathar attacked a party of the Notui (what the bird-like creatures call themselves) and were killed by the Notui.  The crew spends the night in the village after reporting in.
61.192– Patrol Group Meteor is dispatched to White Light via Timeon.

– The saurian delegation arrives at Minotaur stations.  Large crowds line the passages hoping to catch a glimpse of the visitors, but they are quickly moved away from the crowds.  After several hours of discussion, they return to their ships.

– Having determined the general direction of where the sathar’s ship landed (roughly in the same direction from the village as the UPFS Eleanor Moraes), the Moraes crew return to their ship to confer with Captain Dentin.
61.193– Calculation and course corrections complete, the 8th saurian Ark Ship jumps to the FS58 system.  They again detect a beacon from the 7th Ark Ship and realize they are still following the previous ship.

– Having completed jump calculations and gotten the radar system fixed, the HSS History’s Hope begins accelerating toward YS06, they plan to make a high speed transit back to Scree Fron spending only enough time in each system to overhaul engines and make jump calculations.

– The saurians of the 7th ark ship return to Minotaur station to continue their discussions with members of the UPF and Minotaur governments, returning once again to their ships at the end of the day.  This continues for the next several days.
61.194– After much deliberation the saurians of the 8th Ark Ship decide that jumping through the nebula again (which would take them to the Tristkar system) would not be the best plan, and like the 7th Ark Ship before them, start plotting a jump to the Theseus system.

– Strike Force Nova departs Zit-Kit (Kisk-Kar) for the K’aken-Kar system.
61.195After three days of detailed survey by the robots, no trace of the sathar ship can be found on land and Captain Dentin suspects that it landed in the water of the nearby river.  The Moraes’ crew sets out to try to find some trace of it along the river.
61.196A delegation from White Light, including Crown Princess Leotia Valentine Leotus, arrives at Minotaur station and joins the deliberations with the Saurians. 
61.197– Jump calculations complete, the 8th saurian Ark Ship begins accelerating toward the Theseus system.

– After two days of careful search along the riverbanks, the Moraes crew discover a metal cable attached to a stake in the ground, partially buried in the sand, and extending out into the river.  Investigation shows some sort of small craft submerged in the river at the other end of the cable.
61.198– HSS History’s Hope jumps into the YS06 system and begin immediately working on the engines and jump calculations for a jump to YS05.

– Using spacesuits with improvised weight belts, the Moraes crew investigate the submerged vessel.  It is a hull size 2 ship of sathar design never seen before.  They locate the airlock at the other end of the cable but do not attempt to enter.
61.199Descending again to the sathar ship, the Moraes crew breach the security system on the airlock and enter the ship.  Fighting through the ship’s defenses, they gain control of the ship with only minor damage to the ship and no serious injuries to the crew.
61.200After a day of examining the sathar vessel, the Moraes crew discover what appears to be a sathar base of operations for the ship located in the FS30 system and astrogation data to get there.  They send a report back to the Frontier Expeditionary Force HQ on Clarion.
61.201PG Meteor arrives in orbit around Lossend (Timeon).  They plan to spend two days here before continuing on to Clarion (White Light).
61.202– The 8th saurian Ark ship successfully jumps into the Theseus system and immediately detect radio signals from the inner system.  A few hours later they detect the 7th Ark Ship and establish communications.

– The UFPS Eleanor Moraes and CMS Osprey receive orders from the Frontier Expeditionary Force commander to select a crew to man the sathar scout ship.  The three ships are to jump to the FS30 system and attempt to capture the sathar base.

– PG Meteor’s time in Timeon is cut short and their orders are changed to proceed immediately to the Theseus system to support Frontier Expeditionary Force operation in the FS30 system.  They leave immediately for the White Light system.
61.203– Strike Force Nova arrives at Ken’zah-Kit in the K’aken-Kar system.  They will remain in this system for 18 days patrolling the outer system.

– Engine overhauls and jump calculations complete, the HSS History’s Hope jumps back to they YS05 system and begins working on the jump to YS03.

And here’s the full timeline file:

DetailedFrontierTimelineDownload

September 8, 2020 Tom 1 Comment

Detailed Frontier Timeline – FY61.051 to FY61.080

This month sees the final leg of the trip for the remaining ships of the Discovery Squadron and it’s final disbanding, the HSS History’s Hope gets back on track on it’s exploration mission, avoiding it’s assailants in the YS01 system, and a new ship emerges from the Minotaur shipyards that will play a pivotal role in the history of the Frontier. Spacefleet also begins construction on the ships for Strike Force Meteor.

As always, you can follow along daily on the Star Frontiers Twitter feed if you don’t want to wait for the monthly summary. I’m a few days behind at the moment with my Twitter posting but I should get caught up in the next day or so.

Date (FY)Events
61.051– The Sathar starship construction center in the Liberty system completes 2 destroyers.

– Strike Force Nova jumps into the Zebulon system. They begin decelerating toward Volturnus.

– After much deliberation, the sathar high command decides to send two of its new cutter ships to the Kazak system to scout out the UPF and Rim forces there.
61.052Construction begins on a new UPF assault carrier at the PGC shipyards (Gran Quivera, Prenglar).  This is the first of the new ships commissioned for the new Strike Force Meteor group to be built around the battleship already under construction.
61.053– Shakedown cruise complete, passengers begin loading onto the newest saurian Ark Ship.

– The HSS History’s Hope detects emissions from another ship in the YS01 system, assumed the be their previous assailant.  However, the ship is far away on the other side of the system.  They believe that they will be able to get out of the system before it could catch them, even if they were already detected.
61.054Construction begins on a new Spacefleet light cruiser, part of the new Strike Force Meteor, at the CDC shipyards (Triad, Cassidine).
61.055Strike Force Nova arrives at Volturnus (Zebulon).  The two Truane’s Star militia assault scouts are released to return to their home system. They begin accelerating toward jump speed.
61.056– Construction begins on two destroyers for Spacefleet’s new Strike Force Meteor at the Hentz (Araks) shipyards.

– Deceleration, plotting, and engine repairs complete, the HSS History’s Hope begins accelerating for their jump back to YS02. Signals from the other ship in the system change and it seems to be accelerating toward them.  However, its distance makes an intercept nearly impossible.
61.057– Construction begins on two frigates for Spacefleet’s new Strike Force Meteor at the Minotaur (Theseus) shipyards.

– Sathar cutters arrive in the outer reaches of the Kazak system and begin a slow deceleration as they gather data on the system.
61.058Repairs at the PGC shipyard (Gran Quivera, Prenglar) restore capacity to 85%.
61.059After several weeks of short intra system runs, the CDCSS Mystic embarks on its first interstellar journey shuttling several CDC managers to Fromeltar to meet with members of the new Groth Energy Corporation.
61.060– The HSS History’s Hope makes the jump to YS02 without encountering the other ship which was still 1.3 AU away when the jump was made.  They begin decelerating and plotting their next jump, which after more study of the astrographic data, will be back to YS03, a jump of 6 ly.

– Upon arrival in YS02, the HSS History’s Hope sends a subspace message back to Histran informing their organization of the presence of the hostile ship still in the YS01 system and their plans to continue onward. They YS01-YS02 jump data is not transmitted.
61.061Construction begins on two assault scouts for Strike Force Meteor at the PGC shipyards (Gran Quivera, Prenglar)
61.062Sathar starship construction center in OFS019 completes a cutter.
61.063Sathar cutters in the outer Kazak system complete their deceleration and continue to collect data on the Rim forces in the system.  They relay that Strike Force Nova seems to have departed the system.
61.064The two Truane’s Star militia assault scouts arrive back at Pale station.  The crews are given a three week leave while the ships are overhauled and repaired in the shipyard before rejoining regular patrol duties.
61.065Memorial Services held in Valencia City (Clarion, White Light) for the crew of the Clarion Royal Marines frigate lost battling the sathar in the Zebulon system.
61.066Sathar begin mobilization for final push into the Saurian system.
61.067After 100 days all of the newly hatched Eorna infants are still alive and growing healthily.
61.068CDCSS Mystic arrives at Groth Station (Fromeltar) without incident.  Its maiden interstellar voyage went off without a hitch.
61.069After months of data collection and analysis, scientists believe they have cracked the structure of the signals from OFS200. Some of them are voice transmissions in an unknown tongue that sounds similar to recordings of sathar voices.
61.070The HSS History’s Hope successfully makes the jump from YS02 to YS03 and begin their deceleration and plotting of a jump back to YS02.
61.071– Summer ends on Alcazzar.  CDC begins pulling staff in preparation for the long winter.

– Construction begins on two assault scouts for Strike Force Meteor at the CDC shipyards (Triad, Cassidine)
61.072With the release of the findings about the signals from OFS200, the Anti-Satharian League stage demonstrations outside the Council of Worlds and Spacefleet headquarters demanding an immediate attack on the system to eradicate the worms.
61.073Loading complete, the sixth saurian Ark Ship departs the Sauria system in search of a new world away from the sathar.
61.074After over a year of rebuilding and new ship construction, the sathar begin gearing up for final push on the Sauria system.
61.075Sathar starship construction center in OFS138 completes a heavy cruiser.
61.076Repairs of Triad Starship Construction Center bring it up to 90% capacity.
61.077Construction of the CMS Flitter complete at the Minotaur (Theseus) shipyards.  The ship begins its maiden voyage to its home system of White Light.
61.078After spending ten days in port, the CDCSS Mystic loads passengers for a return trip to Triad (Cassidine). The CDC delegation remains on Groth (Fromeltar) to continue negotiations with the Groth Energy Corporation.
61.079The UPFS Eleanor Moraes emerges from the Minotaur (Theseus) shipyard and begins a shakedown cruise as the final members of the crew begin to arrive in the system.
61.080Repairs at the PGC shipyard (Gran Quivera, Prenglar) restore capacity to 90%.

Here’s the full timeline file:

DetailedFrontierTimelineDownload
May 5, 2020 Tom 1 Comment

Star Map Generator – GUI Edition

So I sat down last week with the intention of working on a new spaceship model but I just wasn’t feeling it. On the other hand, I’ve been doing a fair amount of coding at work and was in the programming mindset. I’ve been thinking about getting back to working on my Second Sathar War (SSW) game but wasn’t quite up to tackling that yet. So I decided to dust off the Star Map Generator that I’d been working on (and used to create the Extended Frontier Map) and add a graphical user interface (GUI) to it in order to make it a little more user friendly for non-programmers.

Since the code is written in Python, and I’m already familiar with the wxWidgets GUI framework from my work on the SSW game, it made sense for me to use the wxPython framework, which is just wxWidgets for Python. Since I’m seriously considering converting the SSW program over to Python, this would give me a bit of practice.

RPG Blog Carnival Logo

Also, this post is going to be my entry for the RPG Blog Carnival this month. The exact topic is “To Boldly Go” hosted by Codex Anathema and is on the topic of exploring the planes and other worlds. It’s couched in terms of Spelljamers and from a fantasy perspective (common with the blog carnival) but I thought, if you’re going to be exploring new worlds, you need a map. So I’m tossing this tool out there for people to use in making their maps.

Building the Basic GUI

The first step was to just implement a basic interface over top of the existing code. The main goal here was to allow the user to specify the various map parameters that up until now, I’ve had to write into the code whenever I wanted to run the program. I’ve never implemented a way to pass those parameters in when it starts. That ability is actually issues number 3 (Add command line parameters) and number 4 (add configuration file option) on my list of open issues. This interface doesn’t solve those issues, but it does provide a workaround.

Building an interface that just accepts some input and stores the values is pretty straightforward and in just a short time (after getting my development environment all set up), I had the basic interface.

It didn’t do anything yet, but could accept the input of all the parameters you need to set to generate a map. Let’s talk briefly about each of those parameters.

  • Map width – This is just the horizontal size of the map. If you’ve seen any of the maps I’ve made with the program, it’s just the number of boxes wide the map will be. The units are light years (this will be important shortly).
  • Map height – The vertical height of the map, again in light years
  • Map thickness – This is the z dimension of the map or how thick of a slice of space you are looking at, again in light years. This is the total dimension just like the width and height. The program will split that into a maximum positive and negative value for use in system generation.
  • Stellar density – This is a measure of the number of stars that should be placed on the map. The units are star systems per cubic light year, which is why the number is so small. The default value (0.004) is roughly the stellar density around the Sun. If you want your map to a parsec (3.26 ly) per square instead of light years, and keep the same approximate density, you’d use a value of 0.138 (a factor of almost 35). That will be a very crowded map.
  • Text scale – As I’m writing this I realized this is mislabeled. While the setting here does affect the text size that is printed on the map, it also affects the size of the stellar symbols printed as well. The default is 1 and that is what I used on the Yazira Sector map. However, I used a scale of 1.5 on the Extended Frontier Map.
  • Output map filename – This is the name of the output map image file. It will be an SVG file and should have .svg as its extension.
  • Output data filename – This is the output file that contains all the coordinates, names, and spectral types of the stars generated as well as the list of jump routes generated. It’s just a text file and you can call it anything you want. I typically use the same same as the map file but with a .dat extension so I can keep track of them together.
  • Input data filename – This field is left blank for a randomly generated map. If you specify a name here, the program will try to load that file and use it to generate the map. The file should be the same format as the output data file. This allows you to randomly generate a map, then tweak the data file and have the program redraw the map with your modifications. This is how I made both the Yazira Sector map and the Extended Frontier Map. If the file specified doesn’t exist, the program will probably crash. Or at least not do anything.
  • Print Z coordinate – This just tells the program whether is should print the z-coordinate (distance above or below the plane of the map) on the map itself. You can see what that looks like on the Yazira Sector Map. I had it turned off for the Extended Frontier Map.

I initially implemented those boxes as simple text boxes but realized that the first five really needed to read in values so I changed them in the code. I should probably change the Input data filename field to be an Open File dialog so that it guarantees that the file is actually there. I’ll need to add that to the open issues.

Finally I added the code to properly process the buttons. Clicking “Generate Map” will do exactly that and write the files to disk in the same directory where the program is located. Clicking “Reset Values” will change all the input values back to the defaults if you’ve made changes.

Making the Program Distributable

By adding the GUI to the program, you need even more setup to run it. Before, you just needed a Python installation as it was pretty vanilla code, but you still needed to install Python. Now, in addition to Python, you need to have installed the wxPython distribution as well. Since I wanted to make this easily usable by non-programmers, I wanted it to just look like another program you that click on and run. So I started looking for ways to package it up for distribution.

It turns out there is a great little Python program called pyInstaller. It takes your program and bundles it up with all the code and files it needs to run and puts it into either a single program file (.exe file) or a folder with all the bits you need and an .exe file to launch it. You can then just distribute it as a zip file, users can unpack the zip file, and run your program.

I tried it out and sure enough, it just worked. You could click on the .exe file and the program would run. Here’s that version of the program. Just download the zip file, extract it somewhere, and run the StarMapGen.exe file.

StarMapGen-initialGUI.zip (12.3MB)

It works fine, but everything is done behind the scenes and the files are created on disk in the directory where you launched the program.

Adding in the Map

The next step was to add in a map display. I mean, what good is having a graphical interface if you don’t get to see the map?

This is where I ran into the first snag. It turns out that the current release version of wxPython (4.0.7) doesn’t have the ability to read in an SVG file and display it. It can write one if you’ve created your image from it’s primitives, but in my case, I’m writing the SVG directly and just want a display. Luckily, the current development version of the package (4.1.0a) does have that capability.

Normally I try to stick with the released versions of packages, but after looking around, all the other options for displaying SVG files required more packages to to be added to the dependency list and in the end, used the same backend that I would have to install for wxWidgets. So I bit the bullet and upgraded to the head of the development channel. Since pyInstaller grabs everything you need and packages it up, I wasn’t too concerned.

So I wired everything up so that when you click that “Generate Map” button, in addition to creating the map and writing the files, it would then load up the file in to the panel on the right hand side of the GUI. Unfortunately, it ended up looking like this:

Initial map display in the program

Notice anything missing? It’s supposed to look like this:

Full map render in Inkscape

All of the stars and text were missing. Not very satisfying.

Fixing the Stars

For the stars, the SVG code uses a series of radial gradients to create the limb darkening and glow effects and maybe the default renderer just couldn’t handle those yet. After all, it was the development version of the software.

So I started digging. Since the default renderer wasn’t working, I looked for alternatives. The package gives a couple of other options for renderers, the best one being based on the Cairo package. This is the same package that I saw being recommended for rendering when I was searching around earlier. I didn’t really want to pull in another dependency but after trying everything else and failing, I added that in. Unfortunately, that didn’t work either.

However, after some testing, I was able to run the wxPython demos and found that it could render radial gradients. A lot of the sample images had them and the images were created by Inkscape, which I had based my code off of. So it had to be an issue in the code I was writing for the image.

After much experimenting with simple images and trying to render them, I finally discovered that the old Inkscape code I based the SVG data on just wasn’t up to snuff. I originally wrote that code in 2015 and things had moved on. Luckily, it didn’t take much to fix it, I just had to add two additional parameters to the gradient specification to get it to work (cx="0" cy="0" if you’re wondering).

When I next ran the program, the stars appeared!

Render with fixed gradient code. Notice I’m reading in the old data file so I get the same map. Also this renderer makes the grid lines finer so they don’t show up as easily in the small screen capture. They are there though.

Fixing the Text

Next up was to figure out why the text wasn’t rendering.

In the SVG file I’m writing, the labels are all rendered as <text> elements. You’d think that would just work but it wasn’t. After the experience with the gradients, the first thing I checked was my implementation. I went into the new Inkscape and exported a simple SVG with just a few characters. That wouldn’t render.

Next I tried some other on-line SVG code generators to create some <text> elements. Those wouldn’t render either.

I then went looking at the sample SVG files from the demos. In every case, it seems that the text in those files were not stored as <text> elements but rather had been converted from text to paths. In other words, they were no longer text but rather drawings.

It appears that the renderers don’t handle the <text> element. This is a bit of an issue because I want to be able to edit the text as needed. Mostly I’m just moving it around, but sometimes I want to be able to change it as well. And once it’s a path instead of text, you can’t edit the characters. Plus I eventually want to allow the user to specify the fonts used on the map (That’s even an open issue, number 5). I like the defaults I’m using but users should have options.

I could have the program write the paths for the text, it would just require hard coding in the paths for the various characters. Currently there are just 23 characters used across two fonts but I don’t really want to do that as that makes it harder to use different fonts or add in additional characters.

In the end, I decided to pass on this issue for now and revisit it at a later date. The full file written out by the program has the text in it, you just don’t see it in the preview at the moment. When I revisit this, I have several options from just building a library of character paths, writing code to do the conversion from text to paths, or even writing code for wxWidgets to do the text rendering natively. There is also the option to use the native wxWidgets primitives to generate the map and then using its ability to write SVG files to make the map file. All will probably be explored.

After taking a pass on generating text, I did make a banner image for the program to load that rendered the text as a path so you could see it. This now what you see when you load the program.

Program start up screen

Adjusting the Display

The last thing I wanted to tackle in this version was resizing the display. You may have noticed that all the maps I’ve shown so far have been square. But you don’t necessarily want a square map. Otherwise, why allow specification of both a height and a width?

By default you get the display shown in the pictures above. However, I wanted the user to be able to enlarge or reshape the window and have the map expand (or shrink) to fill as much of the space available as possible. This required playing a bit with the layout engine in wxWidgets.

If you notice, in the very first image, the region on the right has a little border around it with the “Map” label. I had intended to keep that border but the layout element that makes it will only resize in one direction and I couldn’t come up with a way to make it stretch in both. It may be possible but I wasn’t finding it and it wasn’t that important. In the end I went with a different element that did stretch the way I wanted, I just lost the border. Which really isn’t that big of a deal.

Now when you generate a map it will scale the map to fit in the available space and then you can resize the window and it will expand or shrink as needed to keep the whole map visible. Here are some examples.

First just a new square map. It fits just fine since the map area was already square.

Next, let’s make the map 30 light years wide. When we hit the “Generate Map” button, we get a view like this:

It’s all there, but has been shrunk down to fit in the space provided. But now we can grab the side of the window and stretch it out a bit to make everything fit.

Packaging Woes

At that point, I was going to package it up as a distributable program and add it to the blog post so you could grab it and play with it. Unfortunately, the addition of the extra dependencies for some reason caused pyInstaller to fail and not make a proper program that I could share. I think it’s just not finding the Cairo rendering library. It has tools to handle that, but I haven’t had time to sit down and figure it out. I finished this last night and am writing this post just an hour before it gets published. Look for an update later this week with the program once I figure it out.

UPDATE:

I got the packaging working. You can grab the version of the program that does the proper rendering of the stars from this link:

StarMapGen-v0.2.0.zip (MB)

Just download it, extract the contents of the folder, and run the StarMapGen.exe file.

Getting the Code

That said, if you’re comfortable installing Python and the dependencies, you can get the code from my StarMapGen GitHub repository. This version of the program is sitting on the master branch. You’ll need to also install the cairocffi Python package and follow the instructions on this page to get the development version of wxPython. Once you’ve done that, the StarMapGen.py script is the main file for the GUI version of the program. makeMap.py is still the command line main program.

What’s Next?

There are a lot of things still left to do and work on. Already identified is the issue of the text rendering in the preview and some of the existing open issues.

A bug that I noticed with the GUI is that if you specify a data file to load, if it’s not square, it doesn’t get scaled properly in the display when rendered and loaded. That will probably be the first issue I track down.

Other improvements include adding a parameter to allow you to turn on and off generation of the jump routes and if you are making them, another parameter that specifies the maximum distance that the program will use to connect systems (currently set to 15 light years).

I also want to add some features to the GUI to include instructions, the ability to save parameter sets, and specify a random seed for map reproducibility.

Finally, I need to do some refactoring of the code to clean it up and document it better.

I’ll be working on this more in the coming weeks so expect to see updates in the future. If you’d like to help out with the code, feel free to clone the repository, make changes and submit a pull request.

What do you think of the program as it now stands? Are there features you’d like to see? Let me know your thoughts in the comments below.

April 21, 2020 Tom 6 Comments

Detailed Frontier Timeline – FY61.20 to FY61.50

This was a busy month on the Frontier (and beyond). The HSS History’s Hope finally overcomes their misjump issues only to be ambushed by an unknown assailant. A strange computer virus nearly destroys the Moneyspider, and the ships of the Discovery Squadron, on their way home, engage and destroy a sathar raid in the Zebulon system.

As always, you can follow along daily on the Star Frontiers Twitter feed if you don’t want to wait for the monthly summary.

Date (FY)Events
61.020 Castuss Wallorr (yazirian), the sape handler on the Moneyspider, is launched out of the ship on a lifeboat. His distress call causes the ship’s roboticist, Daqor Klarr (vrusk) to snap and have to be restrained. (SFAD5)
61.021 – Baralou Ap-Reaverchan (yazirian), Moneyspider’s astrogator, is killed in a sudden explosion in the life support system on Snobol, the asteroid the ship is tethered to. (SFAD5)

– On their return to the Moneyspider from Snobol, the elevator fails and the crew that responded to Baralou’s distress call are severely injured.  (SFAD5)

– In the confusion of the elevator crash, Daqor, sedated in the Moneyspider’s medical bay, is killed by an overdose of anesthesia.  (SFAD5)
61.022 Calculations mostly done, the HSS History’s Hope begins accelerating for its jump back to the YS01 system.
61.023 – The Moneyspider’s security robot malfunctions and starts shooting holes in the gas tanks holding the filtered toxins from the planet’s atmosphere. The life support system is also malfunctioning and not filtering the air.  Fiator Geauis (dralasite), ship technician is killed due to a sabotaged gas mask. (SFAD5)

– Ellen Coopermann, as the only survivor of the original crew is the prime suspect, but she convinces the rescue party she is innocent. She begins to believe the rescue teams account of the Matrix and works to help them eradicate it. (SFAD5)
61.024 After many weeks of behind the scenes deals and increasing discontent over the practices of the Groth Energy Corporation, the creation of a new entity is announced, the Consolidated Nebula Energy Group (CNE) (ZG), formed by the merger of the three largest independent energy producers on Groth.  All smaller energy producers are invited to join.
61.025 – Despite their best efforts, the techniques that worked on Jetsom aren’t working to destroy the Matrix on Moneyspider. (SFAD5)

– Looking through the Captain’s Computer/Robot System’s Manual Ellen learns that Baralou, the astrogator is listed as one of the ship’s robots, which means it was not her body recovered in the explosion on Snobol. Baralou becomes the prime suspect of all the deaths. (SFAD5)
61.026 – The Sathar starship construction center in OFS111 completes a light cruiser.

– Her secret discovered, Baralou attempts to eliminate Ellen and the rescue team. After a running fight through the ship between the surviving crew members and Baralou, who is aided by the ship’s robots and automated defense systems, Baralou is neutralized. (SFAD5)
61.027 – The Discovery Squadron arrives at Faire in the Capella system.  They spend three days on the planet before heading on to Zebulon.

– The HSS History’s Hope successfully jumps into the YS01 and begins decelerating. Jump calculations are begun anew for another attempt at the jump to the YS02 system.

– With Baralou gone, the remaining crew on the Moneyspider slowly begin to make progress on destroying the Matrix from the Moneyspider’s systems. (SFAD5)
61.028 An attempt is made to sabotage the Minotaur (Theseus) shipyards. It is foiled due to increased security after PGC shipyard attack a few months ago.
61.029 – Deceleration nearly complete, the HSS History’s Hope is set upon by an unidentified, armed vessel that does not respond to any attempts to communicate. While obviously of Frontier origin, the vessel is not one that the crew has seen before.  An SOS is broadcast via subspace radio to the Frontier.

– In the ensuing fight, the HSS History’s Hope’s engines are severely damaged but a lucky shot by their gunner sends the assailant spinning out of control, ending the fight.  The crew rushes to fix the engines and get underway before the assaulting ship can repair itself and return.
61.030 – Having remained undetected as they drifted through the outer system, the sathar ships in the outer Kazak system begin slowly changing their vector for a jump to Zebulon. 

– Just hours before the relief ship arrives at the Moneyspider, the crew eradicates the last vestiges of the Matrix from the ship.  The remaining crew board the relief ship to head back to the Prenglar system. (SFAD5)
61.031 With the “fall” season approaching CDC decides that winters are too harsh to keep the crew on Alcazzar (Rhianna) and stop operations for the year after mining over 6.3 million credits of resources, mostly gold. (SF4)
61.032 Repairs of the HSS History Hope’s engines take much longer than expected. Luckily, their assailant failed to return. The crew debates whether they should return to the Frontier for complete repairs or push onward. 
61.033 After much deliberation, it is decided that the HSS History’s Hope will push on but not transmit their completed routes back to the UPF for registration, but only to Histran to track their progress.  Calculations are begun again for a jump to YS02.
61.034 Repairs at the PGC shipyard (Gran Quivera, Prenglar) restore capacity to 80%.
61.035 – Repair work on the Triad SSC continues.  The construction center is now at 85% of its original capacity.

– The Discovery Squadron makes the jump to the Zebulon system and starts decelerating toward Volturnus.
61.036 – The sathar ships from OSF019 make the jump and arrive in the Zebulon system.  They start decelerating toward Volturnus.

– Initial calculations complete, the HSS History’s Hope begins accelerating once again for a jump to the YS02 system.
61.037 – Sathar ships are detected by Discovery Squadron and messages are sent to Spacefleet, Pale (Truane’s Star), and Strike Force Nova announcing the sathar presence in the system.

– As the only armed vessels in the system, Discovery Squadron is ordered to intercept the sathar vessels despite being severely out classed.
61.038 The decision by Obar Enterprises to not report the Truane’s Star-Cassidine jump route has paid off nicely.  In just 100 days, they have made over 1.6 million credits in gross profits, more than double what would have been possible before the jump route was plotted.
61.039 – Discovery Squadron intercepts the sathar ships. Whether due to a sizable skill differential or simply good luck, the smaller UPF ships manage to destroy all 4 sathar vessels. Unfortunately, the militia frigate and one of the Streel corvettes are lost while the other 2 corvettes are severely damaged.

– Realizing that they have too much force projected into the Rim, and that the sathar seem to have a way into the Frontier around the ships station in Kazak, Strike Force Nova begins a high-speed transit back to Frontier Space.  Patrol Group Virgo is split off again and remains in Kazak to bolster the Rim defenses in that system.
61.040 – After making critical repairs, the remains of the Discovery Squadron begin making their way to Volturnus.

– The HSS History’s Hope successfully arrives in YS02, much to the relief of her crew.  They begin decelerating and plotting the return jump to YS01.
61.041 The sixth saurian Ark Ship is completed and begins its shakedown cruise.
61.042 Information is uncovered that the buyout of Groth Energy may have been orchestrated by the group known as the Investors. The reporter that uncovered the leak is found dead after falling off of his 16th story balcony in downtown Port Loren (Gran Quivera, Prenglar).
61.043 The Discovery Squadron pulls into orbit around Volturnus where they start working on more repairs and resupplying the assault scouts which had depleted all their assault rockets in the fight with the sathar.
61.044 Strike Force Nova jumps into the Osak system but remains near jump speed as they compute the next leg of their jump to Capella
61.045 Deceleration complete, the HSS History’s Hope begin accelerating for the jump back to YS01.  They are aiming to arrive high in the system to attempt to avoid the assailant that was there last time if that ship is still in the system.
61.046 – Repairs complete, the Streel corvettes begin accelerating for a jump home to Truane’s Star.  The assault scouts are ordered to stay in the Volturnus system for the time being to provide early warning and defense of that system as Spacefleet finalizes it’s plans.  Discovery Squadron is officially dissolved.

– Strike Force Nova jump into the Capella system, again remaining near jump speed as they compute a jump to the Zebulon system.
61.047 Fortress Kdikit (Madderly’s Star) completed.
61.048 After much debate, and heavily swayed by discovery of the sathar presence in OFS019 and the recent events in the Zebulon system, the Council of Worlds authorizes additional spending by Spacefleet to commission several new vessels.
61.049 With the go-ahead and funding from the Council of Worlds, Spacefleet decides to exercise their development plan Sierra Foxtrot Meteor, which builds out another Strike Force similar to SF Nova.  Orders are placed for vessels from various shipyards around the Frontier.
61.050 The HSS History’s Hope successfully makes the jump back to YS01 arriving high in the system as desired. They immediately begin decelerating and scanning the system for any other ships as they start in on engine overhauls and plotting the jump back to YS02.

Full timeline file:

DetailedFrontierTimeline-1Download
April 7, 2020 Tom Leave a comment

The Blue Plague, Revisited

This was not the post I had planned for this week but with all the precautions and closures due to the COVID-19 coronavirus the last few weeks, it got me thinking about medical technology and then about the differences between Frontier technology and our modern tech.

A Look at the Frontier

One thing that always stood out to me, even as a preteen/teenager in the early 80’s was that the relative levels of technology in the Frontier was very different from our own, and that was ignoring things like spaceflight, laser guns, and FTL travel.

Take computers for instance, even in the early- to mid- 80’s, the computer technology here on Earth was beyond that of the Frontier, or at least on par with it.  And looking at the game with modern eyes, we are way beyond the Frontier tech.

Zeb’s Guide did a little to advance the computer technology and shrink it down, with the introduction of the bodycomp.  This helped to bring the tech somewhat in line with what was available in the mid-80s.  But a visitor from the Frontier to Earth today would be amazed with our modern computer technology.

However, if you look at Frontier medical technology, it is light years ahead of even our modern medicine.  With just a handful of relatively inexpensive drugs, you can cure most diseases, neutralize toxins, heal injuries, and even postpone death.  Not to mention the freeze field and storage class transport fields that can put you into indefinite suspended animation (as long as the power doesn’t go out).  These wonder drugs would be a dream come true for medical professionals on Earth today.

I don’t know if it was a question really, more like an unsatisfied curiosity, but I have always wondered and thought about why the Frontier went down that technology path rather than the one we did.  Why is the medical technology vastly beyond the physical technology?

Game Play

At a practical level, it is what it is so that the game can be exciting and playable.  You need advanced medical technology (just like you need healing spells in a fantasy game) so that the PCs can get right back into the adventure after getting hurt.  And you don’t want the tech to be so amazing that it overshadows the abilities of the characters.

In fact, it was either Larry Schick or Dave Cook, the original creators of Star Frontiers, who, in an interview said that they set the tech level where it was so that it was the PCs that had to do the tasks and not be able to just call on the technology to solve all their problems.  That was why they made the computers big and clunky, with no real networking, and many of the other design choices that they made.

That said, it is still a fun exercise to think about what events we could work into the history of the Frontier to account for such a balance of tech levels.

A Sweeping Pandemic

Which brings me back to COVID-19 and the events happening in the world today.

In Zeb’s Guide, it talks about the Blue Plague and five worlds that were lost to this plague.  While I either like or don’t mind many of the setting elements introduced in Zeb’s Guide, this is one that has never really sat well with me.  So much so that I left those worlds off of my Extended Frontier Map completely.  What where the original names of those systems?  They wouldn’t have been called Alpha through Epsilon originally. Why weren’t they on the Frontier map from the original rules?  They would have been in setting at the time in the history that the original game occupies.  I understand the desire to expand the setting, but the way the Zeb’s Guide timeline was built made many of the things it presented inconsistent with the original game setting and modules.

I don’t like the placement that Zeb’s Guide gives to the Blue Plague, occurring from 17-27 FY – after the original sathar invasion that prompted the formation of the UPF.  It feels too late and tacked on.  And I don’t like that it wipes out five star systems that should have been part of the Frontier history but were never mentioned in the original game.

But what if something like the Blue Plague happened, just much, much earlier in the history of the region?  Back when all the technology was young and prompted a focus on the biological and medical sciences over the physical ones?  That could have prompted the technology development we see in the game.

Now you might argue that you need the physical and computer tech advances to produce the medical ones, we definitely see technology aiding medicine today. But we don’t know that it’s absolutely necessary.  We only have one sample timeline.  It didn’t work out that way for us, but that’s not to say they path we took is the only one.  It’s time for a little willing suspension of disbelief.

The Blue Plague Revisited

So let’s dial the clock way back, to the early settlement of the Frontier.  In the Knight Hawks rules, it states that the discovery of the FTL travel was an accident.  It was completely unexpected.  In my game it was the humans who stumbled upon Void Jumping and shared it around.  In the process of exploring it, they discovered a signal from the Vrusk and went to investigate.  But because of its accidental discovery, I have the human tech level originally set somewhere around that of the late 60’s, early 70’s somewhat consistent with the computer tech of the game.  They just happened to have developed better propulsion systems to get the necessary speeds.

Instead of hunkering down, they exploded throughout the region.  There is a reason there are many more human worlds than those of the other races, and even then, you find humans almost everywhere.  They had the ability to travel to the stars and they did, aggressively. The other races expanded outward as well, but not nearly as much.  As I detailed my Yazirian Lore posts last month (part 1, part 2), the yazirians were expanding outward out of a sense of preservation.  The vrusk and dralasites didn’t expand out nearly as much.

And then, shortly after all of these worlds were being settled, the Blue Plague struck.  In Zeb’s Guide, it describes the plague as receiving its name due to its early symptoms: large blue welts that appear about the face and extremities that leave horrible black scars even if you survive the plague.

No one knows exactly where it came from.  The first cases were on Prenglar, the hub of the Frontier where travelers from all over mingle and visit.  As more and more cases were discovered on Gran Quivera, it began to be studied more, restrictions and quarantines were put in place, and efforts were made to get it under control.

But by then it was too late.  The disease, having a very long incubation period, had already spread throughout the Frontier and cases began popping up on every world.  Due to the horrific nature of the plague as well as the relatively high mortality rate, quarantines and restrictions became very strict.  Of course, this impacts production, research, and distribution, especially of food.  Because of the long incubation period, coupled with the long duration of the illness itself, these quarantines ended up lasting for a very long time.  As many people probably died of knock-on effects of these restrictions as died from the Blue Plague itself.

One impact of the long duration of the plague was the development of robot technology.  Since the citizens were afraid to come in contact with one another, something had to be done to produce the goods and food needed to sustain the populations of the various worlds.  Thus, robot technology got a huge boost.  The early models were crude, probably remotely operated, and not very sophisticated, but the plague launched the nascent robotics industry that would continue to develop over the intervening years.

More importantly, the Blue Plague resulted in a huge boost in funding into medical research.  This funding came from everywhere.  Governments heavily supported it at the behest of their citizens.  Companies supported both to try to keep their workers and as a public relations measure.  And private citizens supported it for a wide variety of reasons ranging from altruism to a desperate desire for self-preservation.

Regardless of the reason, funding into the biological and medical science boomed and universities and research institutions flourished.  It took several years, but a cure was finally found.  Along the way, other interesting avenues of research were uncovered but left unexplored in the rush to find the cure.  Eventually, all this research payed off and the Blue Plague was eradicated.

Aftermath

After the Blue Plague was under control, the citizens of the Frontier took stock of the situation and the results were horrifying.  Millions dead across every world of the Frontier.  Millions more permanently disfigured for life.  No one issued a proclamation, no one passed any laws, but collectively as a Frontier-wide community, the people resolved to never let this happen again.  The funding in the medical sciences, while never again as high a proportion of the total wealth of the Frontier as during the Blue Plague itself, remained very high.

Because of this high state of funding, all those interesting side avenues that had been discovered during the Blue Plague research were able to be pursued and developed.  Over time, this led to the development of the wonder drugs known in the modern Frontier as Biocort, Simdose, Staydose, Omnimycin, Antibody Plus, and AntiTox.  Six drugs that together can treat almost anything the universe might throw at you.

Having seen the benefits of using robots for many of the menial jobs required during the Blue Plague era, robotics continued to develop a heightened state, although nowhere near the level of the medical sciences.  Effort was put into developing robotic systems that could be autonomous and operate independently of direct supervision but rather controlled by programming or robot management software.  This heightened development has led to the relatively inexpensive and highly capable robots found in the Frontier today.

Of course, the cost of this increased medical and robotics development was a slowing of the development of the other technologies.  Computers, vehicles, starships, and even weapons systems fell behind the curve.  Advances were made, but not nearly at the pace of the robotics and medical technologies.  Thus we get the technology levels presented in the game rules.

Using This in Your Game

If you chose to use this history in your version of the Frontier, what impacts might it have in your game?

One aspect is survivors of the Blue Plague.  Depending on how long you made the extended history of the Frontier, and where you place the Blue Plague in that history, there might still be survivors bearing all the scars of their ordeal.  Personally, I don’t like the 400+ years of the Zeb’s Guide Timeline and prefer to compress it much more than that. Making it 200 years at most.  That allows me to have the technology not as developed.  But that means, given the 175 – 250 year average lifespans for the various Frontier species, there will be survivors of the Blue Plague still around.  They will be older, but could still be active members of society.  How do they see the world?  Do they have agendas they push for?  What stories do they have to tell and how has their experiences shaped the way they look at the world?

The modern wonder drugs can solve almost any issue.  What does that mean for all the companies that have invested in the research side of things?  Is research slowing down?  Is the funding shifting?  How does that impact the economy and the people working in those industries?  Maybe there is funding slowly shifting to other areas?  Are computers becoming smaller and more powerful, starting to move along the path of our Earth technology?  Is the money going other places?  Or maybe there are occurrences of other diseases like the Blue Plague that break out but never to the same extent that require constant retooling of the medicines keeping the biotech industry alive and well.

Is the Blue Plague really eradicated or do new cases pop up occasionally around the Frontier?  How do people react when it happens?  Are the causes natural or contrived?

How did the enforced isolation required during the Blue Plague era affect communities?  Would the isolation become standard?  Would it cause an increased awareness of the need for community?  Would it spark an increased care and understanding of the needs and interests of one’s neighbors?  Maybe it did all of those on different worlds or in different communities.  When you create a community for the PCs to interact with, you might sprinkle in an unusual custom that dates from the time of the Blue Plague.

What other ideas does this alternate timeline bring to mind?  How else might you apply it in your game?  Share your thoughts in the comments below.

March 17, 2020 Tom Leave a comment

Detailed Frontier Timeline – FY60.391 to FY61.019

This month see a new year in the Frontier, an escalation of the tension with a small battle between UPF and sathar forces, and the start of construction on a new UPF exploration ship. The HSS History’s Hope also runs in to some trouble with a few bad misjumps, ending up in systems they never intended.

Date (FY)Event
60.391 Construction of the CMS Swallow begins
60.392 The CRL-E1 maintenance robot on Jetsom stops functioning and refuse to move or obey any commands.  Resetting its mission and functions restores functionality but only for a few hours. The rescue team realize that it has become infected by the Matrix. (SFAD5)
60.393 – After reviewing the data from Patrol Group Flint, and in light of the information returned by the Discovery Squadron, the commander of Strike Force Nova decides to send another scouting mission to OFS019 before making more definite plans.

– Patrol Group Flint is again detached from the Strike Force and begins accelerating for a jump back to the OFS019 system.  If possible, they are to remain undetected in the system and transmit data back via subspace radio.
60.394 Second K’aken-Kar militia assault scout arrives in its home system.
60.395 Repair work and astrogation calculations complete, the HSS History’s Hope begins accelerating toward their next system, designated YS002.
60.396 Shakedown cruise complete, the fifth Saurian Ark Ship begins loading of cargo and passengers.
60.397 After over two weeks of dealing with issues caused by the Matrix, the rescue team finally discover its fatal weakness and start taking measures to destroy the virus and eradicate it from the Jetsom platform. (SFAD5)
60.398 Patrol Group Flint arrives in OFS019 once again. They stay near jump speed with engines off to reduce the chance of detection and coast across the system at high velocity. They begin cataloging signals from ships in the system.
60.399 The HSS History’s Hope initiates the Void Jump to YS02. Unfortunately, due to an error in their calculations, they end up in an unknown binary star system.  Designating this as YS03, they start deceleration and trying to figure out where they ended up.
60.400 – Preparations, which have been going on for weeks, are finalized on worlds around the Frontier for a major Founding Day celebration celebrating six full decades of the United Planetary Federation. While some events over the past year have been troubling, everyone is determined to make this a celebration to be long remembered.

– After two days of data collection, Patrol Group Flint catalogs an ever growing sathar presence in the system. They have identified over 25 military vessels including four of the new, unknown ship type, as well as a station and various ancillary ships. The data is relayed back to Strike Force Nova.
61.001 – Major Founding Day celebrations held throughout the Frontier. Although there were some small incidents, the general mood on every world was very upbeat.

– Having crossed the system so that their engine emissions should be less noticeable, Patrol Group Flint begins decelerating.  They have solidified the ship count to 8 fighters, 4 of the unknown ships, and 15 capital ships, plus a single space station.
61.002 WarTech factories on Hargut (Gruna Garu) attacked by unknown forces. Expecting a lower alert level due to the Founding Day celebrations, the attackers underestimate the automated defenses and alertness of the security staff and are repulsed with heavy losses.
61.003 Sathar forces in OFS019 detect the decelerating ships of PG Flint.  A light cruiser, two destroyers and a frigate are dispatched under radio blackout to intercept.  They boost hard for several hours and then kill their engines, minimizing emissions as they approach.
61.004 Streel files a protest with the Council of Worlds requesting that its ships that were part of Discovery Squadron be released by Strike Force Nova to return to the Frontier as they are private vessels and not part of Spacefleet or a planetary militia.
61.005 After six days of work, the History’s Hope astrogation team finally determines their location.  They shot way beyond their mark arriving in a system that is 6 light years beyond YS02. The good news is that they know where they were, the bad news is that it is well off the path they had planned to take, and they now have two uncharted jumps back to YS01.
61.006 – Deceleration complete, Patrol Group Flint continue to monitor the OFS019 system and begins plotting a return jump to Kazak from their current location.

– The Sathar starship construction center in the Liberty system completes a destroyer.

– With only eight days until the orbital window opens for them to return to the Moneyspider, the recovery team on Jetsom has nearly eradicated the Matrix from the mining platform.  The only holdouts are areas where damage prevents them from pressurizing the area and increasing the temperature.
61.007 After three days of deliberations within Spacefleet, the Council of Worlds, and slow communication with Strike Force Nova’s commander, all of the ships of Discovery Squadron are dedeputized and allowed to depart Kazak and return home.The six ships of Discovery Squadron from Truane’s Star depart immediately upon their release.  The two Humma ships stay with the Flight forces in the system.
61.008 Patrol Group Flint detect the approaching sathar ships as they begin decelerating and angling for intercept.  With evasion unlikely, the UPF ships send off a subspace radio and begin a hard acceleration to try to escape, while expecting to fight a very uneven battle.
61.009 The sathar ships catch Patrol Group Flint.  After a short running battle, the two UPF destroyers are destroyed by the sathar forces which suffer severe damage to the frigate and one destroyer, but all ships survive the battle.
61.010 – Loading complete, the fifth saurian Ark ships departs the Sauria system for destinations unknown.

– With the destruction of PG Flint, the sathar launch a raid into the Frontier sector to try to draw off the Frontier forces from wherever they are basing from. Two light cruisers, three destroyers, and a frigate leave for Zebulon via a high-speed transit of the Kazak system.
61.011 The HSS History’s Hope’s attempt to jump to the YS02 system from YS03 fails and they land once again in an unknown binary system of two M dwarf stars. As they decelerate, they begin trying to work out their position.  It seems travel here in the Vast Expanse is more difficult than expected.
61.012 Construction is completed on the CDCSS Mystic at the Triad (Cassidine) shipyards. While it has the same profile as the CDCSS Nightwind, this ship is focused on passenger transport rather than cargo.  It begins a shakedown cruise carrying CDC personnel from Triad to Rupert’s Hole and back.
61.013 The Council of Worlds convenes for the FY61 session. 
61.014 – The CMS Osprey docks with a strange looking freighter for what its commanding officer, Lt. Tabbe, says is a “high security” mission.  When the airlock opens sathar swarm into the assault scout. After an intense battle, the Osprey’s boarding party neutralize the sathar and their agent Lt. Tabbe.  The freighter gets away, but the Osprey is saved.

– The sathar ships from OFS019 arrive in Kazak well outside the inner system.  They remain near jump speed search the system for signals of Flight or Spacefleet presence in the system.
61.015 Detecting Strike Force Nova and the Flight forces in the system, the sathar ships begin cataloging the ships detected. They remain near jump speed and coast through the outer system.
61.016 After five days of around-the-clock work, the astrogators on the HSS History’s Hope have determined their location and also uncovered an error in their astrographic catalog that may have been the source of their error. The system is designated YS04.
61.017 – After a day of rest, the HSS History’s Hope’s astrogators begin charting a route to YS01, the closest system with known jump routes.  It is a 10 light year jump, the farthest new jump they have charted.  OFS219 is closer, at 8 ly, but would require several new jumps to get back to charted space lanes.

– Discovery Squadron arrives in the Osak system where they spend a day resting before heading on to Capella
61.018 The rescue crew from Jetsom returns to the Moneyspider to the relief of Captain Akizk.  As the rescue crew is en route to the Captain’s office, the Captain dies, seemingly by suicide. The second in command (Ellen Coopermann, human) doesn’t believe their report about the Matrix. (SFAD5)
61.019 The Frontier Expeditionary Force begins organizing a project to explore beyond the Theseus system.  A new ship, the UPFS Elanor Moraes is commissioned for construction at the Minotaur (Theseus) shipyards.

Here’s the full file:

DetailedFrontierTimelineDownload
March 3, 2020 Tom 2 Comments

Detailed Frontier Timeline – FY60.360 to FY60.390

This is a busy month in the time line with lots of events happening simultaneously. If I had realized how much overlap there would be in some of the story threads, I might not have started the Bugs in the System (SFAD5) thread last month. The timing of the Warriors of White Light events, however, have been scheduled since the beginning of the project.

Things are coming to a head relative to the Sathar Starship Construction Center in OFS019. I haven’t really decided how that will resolve out yet so we’ll just have to wait and see. Also, the HSS History’s Hope is making regular, if slow progress toward it’s goal. They’ve been lucky recently. I roll with each newly charted jump to see if they make it and they’ve made a few by just a couple of percentiles. Moving into the Vast Expanse the jumps are going to get significantly longer with much lower probabilities. At some point I’ll post a star map with the systems in what I’m calling the Yazira Sector.

If you follow along on Twitter (@StarFrontiers) you may have noticed that I fell behind a bit a couple of times this month as well as dropping some of the story lines and having to get caught up. That’s what I get for just working a few days ahead recently. I’m going to try to get a bit ahead of this again in the next few days. Anyway, on to the timeline.

Date (FY)Event
60.360 – The TransTravel assault scout arrives at Terldrom (Fromeltar)

– Strike Force Nova, joined by the ships of Patrol Group Virgo, leaves orbit around Volturnus (Zebulon) and starts accelerating for their jump to the Capella system in the Rim.
60.361 Sathar SCC#2 (Liberty) completes a destroyer.
60.362 Discovery Squadron successfully jumps into the OFS017 system coming in high out of the plane of the system.  With two near misses, they decided to take some downtime in this system to allow the astrogators to rest.
60.363 Just 10 days after the buyout, the Groth Energy Corporation (GE) has reopened all their operations. They also announce a major hike in energy prices. There is much grumbling but due to the nature of the Groth (Fromeltar) infrastructure, most customers are locked into to GE as their only provider and must pay the higher prices or be cut off.
60.364 The HSS History’s Hope successfully jumps to the system designated YS001 and begins deceleration in preparation for their return jump to OFS222.  They are the first ship to leave the Outer Frontier Sector into the Vast Expanse in over five decades, none before have ever returned.
60.365 Repairs on the starship construction center orbiting Triad (Cassidine) restore capacity back to 80% of maximum.
60.366 Sathar SCC#4 completes 5 fighters
60.367 Confident now that the danger to the newly hatched eorna is past, another cretch of fifty eggs is hatched.
60.368 – A freighter, the HHSS Sojourner, traveling from Scree Fron to Araks, stops over at Snobol (Belnafaer) due to engine trouble.  The freighter has several passengers in addition to its regular cargo (SFAD5)

– After several days of rest and time for some needed maintenance, the ships of the Discovery squadron begin accelerating for a jump back to Kazak.  This will be their last uncharted jump.
60.369 Strike Force Nova arrives at Faire (Capella).  Fleet officers meet with leaders of the Flight and the Rim Government to discuss plans for the OFS019 system.
60.370 – Responding to a mayday call from the PSS Prenglar Doll, the CMS Osprey engages the pirate ship PVSS Raven, a Streel manufactured corvette that was attacking the PSS Prenglar Doll. The Raven escapes the battle after damaging the Osprey’s engines but the crew and cargo of the Prenglar Doll survive the encounter. (SFKH0)

– Having completed their deceleration, and jump calculations, the HSS History’s Hope begins acceleration back to the OFS222 system.
60.371 Captain Akizk of the Moneyspider recruits some of the passengers of the HHSS Sojourner to remain in the system and help him get Jetsom working again and rescue any crew still trapped there.
60.372 Sathar SCC#5 completes a light cruiser
60.373 Discovery Squadron successfully jumps into the Kazak system and begins decelerating toward Stenmar Station.  They transmit all their navigation data to the UPF and Rim Coalition forces.
60.374 Construction of second assault scout for the K’aken-Kar militia is completed at the Terldrom (Fromeltar) shipyard.  It begins it’s journey to it’s home system.
60.375 – The GLLR-5 recreation robot on the Moneyspider goes haywire attacking Daqor Klarr (vrusk) and Fiator Geauis (dralasite) in the rec room. A symptom of the Matrix infecting the Moneyspider, it is considered a simple programming glitch. (SFAD5)

– The HSS History’s Hope arrives back in the OFS222 system and begins deceleration.  They transmit jump data back to the UPF.
60.376 – The team recruited by Captain Akizk of the Moneyspider descend to Jetsom to investigate the problems there. They find the platform operating but the life support is keeping the temperature very cold (-10 C). (SFAD5)

– After a week of discussion, no consensus has been reached between the Rim and Strike Force Nova as to how best deal with the sathar in OFS019.  Strike Force Nova leaves Faire (Capella) to continue on to the Kazak system.
60.377 – Construction completed on the UPF light cruiser in the Gran Quivera (Prenglar) starship construction center, replacing the one lost at the Battle of Zebulon.

– Exploration of the Jetsom platform reveals one crew member in a freeze field, the body of another in a freeze field whose power failed, and the remains of a third that was killed by the sapes on the platform.  The sapes are still alive and the fourth crew member is missing. (SFAD5)
60.378 – The body of the fourth Jetsom crew member (Akord Zon – vrusk) is found, dead and slumped over her computer terminal in the reactor room.  A tear in her insuit resulted in a radiation overdose that killed her. (SFAD5)

– After two days of work, the rescue team can still not get control of the life support system on the Jetsom. While attempts to correct the system seem to work, they always revert to the very cold temperatures after a few hours. (SFAD5)

– Discovery Squadron arrives at Stenmar Station.  The commanding officer of Patrol Group Flint deputizes the ships to be part of the patrol group until Strike Force Nova arrives and decides the next course of action
60.379 On its one year anniversary, the Yazira Dome has received over 5 million visitors. During a special celebration, GODCo announces its intent to build a second dome on Hakosaur in the Scree Fron system. Many believe that this is in response to the pressures to allow non-yazirian visitors into the dome on Hentz (Araks).
60.380 – A wildcat miner in the White Light asteroid belt reports the location of a pirate base in the asteroid Planaron to the Clarion Royal Marines.  Plans begin immediately to neutralize the base. (SFKH0)

– Deceleration complete, the HSS History’s Hope begins acceleration back toward YS001 to continue their voyage into the uncharted space.
60.381 – On board the Jetsom, hatches start randomly locking and alarms start randomly going off reporting dangerous conditions when none exist. (SFAD5)

– Strike Force Nova arrives in the Osak system.  They maintain velocity near jump speed and begin plotting jump to Kazak.
60.382 The four Clarion Royal Marine militia vessels (1 frigate & 3 assault scouts) engage the pirate forces (3 corvettes) at the pirate base.  The CMS Wasp is destroyed in the fight and all the militia vessels take damage. The frigate, the CMS Leo, is nearly destroyed as well. The pirate vessels and base are all eliminated. (SFKH0)
60.383 An order is placed at the Minotuar starship construction center (Theseus) for two new assault scouts for the Clarion Royal Marines, the CMS Flitter and the CMS Swallow.
60.384 Construction completed on fifth Saurian Ark Ship which begins its shakedown cruise.
60.385 Based on Akord Zon’s notes and their experiences over the past week, the rescue crew on the Jetsom establish that the computer and electrical failures are due to the action of a semi-sentient computer virus that Akord had named “the Matrix.” (SFAD5)
60.386 Using Akord Zone’s notes and after much experimentation, the rescue team on Jetsom are finally able to wrest control of the life support system from the control of the Matrix.  They reset the temperature on the platform to a more comfortable 20 C. (SFAD5)
60.387 Construction of the CMS Flitter begins
60.388 The rescue team on Jetsom start experiencing issues with their equipment that they brought with them, especially any power packs that they have recharged recently.  They register as charged but provide no power. (SFAD5)
60.389 Having arrived back in YS001, the crew of the HSS History’s Hope begin maintenance work on the ship while the astrogators work on plotting the jump route for the next leg. The target is a small M dwarf 5 lightyears away.
60.390 Strike Force Nova arrives at Stenmar Station (Kazak). Patrol Group Flint is merged back into the Strike Force.  Together with Discovery Squadron and the Flight forces in the system, the warships represent the greatest collection of ships since the Second Common Muster to face the sathar six decades previous.

Download the full file :

DetailedFrontierTimelineDownload
February 4, 2020 Tom 2 Comments

Worlds of Origin for Star Frontiers Races – part 1

This week we’re going to begin looking at determining the origins of any given character or NPC in the Frontier. I’ve labeled this as part 1 in a series as it is a preliminary draft that I plan to tweak and expand on in the future. This is really a preliminary, first pass but still quite usable in its current form.

This is the post I had planned for last week but didn’t quite have it ready in time so you got the UPF Minelayer a week early.

RPG Blog Carnival Logo

This project is something that’s been kicking around in the back of my mind for years now and I was inspired to look at it again as part of the RPG Blog Carnival this month which has the topic “Random Encounter Tables“. While this isn’t necessarily a random encounter table per se, it can be used to randomly determine information about someone you encounter in the game. It’s a bit of a stretch, but still relevant. I encourage everyone to visit the main topic page for this months carnival and read all the posts linked to in the comments. I’ll be hosting the blog carnival in June so I’m going to make an effort to write a post each month for the carnival this year and become more active. It tends to be more focused on fantasy gaming so sometimes I’ll really need to stretch the topic but we’ll see how it goes.

We’re going to start right with the table and then I’ll talk about how it was generated. If you’re interested in a slightly different take on this same topic, we published an article, “Star Frontiers Birth Locations” by ExileInParadise, in issue 19 of the Frontier Explorer back in Jan 2017 as part of our Star Frontiers 35th anniversary issue. This article will be a first pass at my take on that same topic.

Where Are You From?

To randomly determine the world of origin of one of the “Core Four” Star Frontiers species, roll d100 on the following table. Find the value rolled in the column for the species in question and the line tells you the origin world and system for that character. This version of the table is ordered by system and not the name of the world.

Planet (system) Dralasite Human Vrusk Yazirian
Hentz (Araks) 1 1 1 1-12
Yast (Athor) 2-3 2-3 2-3 13-19
Rupert’s Hole (Cassidine) 4-6 4-10 4-5 20-22
Triad (Cassidine) 7-18 11-20 6-17 23-33
Laco (Dixon’s Star) 19 21-22 18 34
Inner Reach (Dramune) 20-27 23-24 19-21 35-37
Outer Reach (Dramune) 28-35 25-31 22-28 38-44
Groth (Fromeltar) 36-40 32 29 45
Terledrom (Fromeltar) 41-52 33-35 30-41 46-49
Hargut (Gruna Goru) 53-56 36-38 42-45 50-61
Ken’zah Kit (K’aken-Kar) 57-59 39-40 46-52 62-63
Zit-Kit (Kizk’-Kar) 60-62 41-42 53-59 64-66
Kawdl-Kit (K’tsa-Kar) 63 43 60-64 67
Kdikit (Madderly’s Star) 64-65 44-50 65 68-69
Gran Quivera (Prenglar) 66-78 51-61 66-76 70-81
Morgaine’s World (Prenglar) 79 62-63 77 82
Histran (Scree Fron) 80 64 78-79 83
Hakosoar (Scree Fron) 81 65 80-82 84
Minotaur (Theseus) 82-85 66-75 83-86 85-87
Lossend (Timeon) 86-87 76-79 87-88 88
Pale (Truane’s Star) 88-95 80-86 89-95 89-95
New Pale (Truane’s Star) 96 87-90 96 96
Clarion (White Light) 97-100 91-100 97-100 97-100

If you just want to use the table, you’re done. Enjoy. If you want to learn a bit more about how I created it, read on.

Building the Table

First off, this table just covers the original systems presented in the original (Alpha Dawn) ruleset, and doesn’t include Volturnus (Zebulon) as there is no indigenous core four population there in that rule set. Also, that rule set left Kawdl-Kit (K’tsa-Kar) out of the data table so I’ve used the values from Zeb’s Guide for that system.

Design Decisions

One of the decisions I made in creating the table is that it is possible for any of the core four races to be from any planet, although the chance may be very small.

Another decision I made was that I didn’t want either a d1000 table (although that’s easy enough to do in Star Frontiers that only uses d10s) and I didn’t want a series of sub-tables. One roll and you would be done.

The result of those decisions is that the smallest probability of having a race/homeworld combination is 1% and for certain situations this is probably a bit (or even a lot) higher than it would really be given the demographics and politics of the Frontier. An example is a non-Yazirian race from Hentz, a world controlled by the Family of One where non-yazirians are second class citizen. There just aren’t that many there. Similarly, vrusk from Kdikit (Madderly’s Star) after most vrusk were driven off world by the Freeworld Rebellion. Although you could also argue that those situations drive up the chance that those beings would be off-world and increase the chance. So in the end, it’s all good.

Getting the Base Numbers

The rules give a dominant population and a population density for each world in the Frontier. The dominant population could be one of the core four races, a mix of two (Terledrom, Fromeltar with a D/V designation for dralasites and vrusk) or an asterisk (“*”) meaning relatively equal mix of all species. The population codes were either outpost, low, medium, or high.

To determine the relative number of each species on each planet I used the following formula. First, an outpost was given a value of 1, low population given a value of 3, medium population a value of 5, and high population a a value of 8. Next, if a species was not listed as a dominant population on a world, it just received the value above. If it was the dominant population, I multiplied that value by three. For the systems marked with an asterisk, I gave all the species the x3 multiplier. Since these planets are the core planets of the Frontier, typically with high populations, this just helps to concentrate the population density there.

For example, Inner Reach, Dramune, is listed as a medium population and the dominant species as Dralasites. So for this world, humans, yazirians, and vrusk all receive 5 points while dralasites receive 15.

This was done for each planet in the Frontier which gave me a large table that listed points for each race on each planet.

Calculating the Table Percentages

Next I tallied up the points for each race. Depending on the species, those totals ranged from 190 to 226. Using those values I scaled the points for each species so that the total came to 100. This effectively gave me the percentage of each species that came from each planet. Some of these, especially on the outpost worlds, end up with percentages less than 1 but given my assumptions, those all get rounded up to 1%.

After that, it was just a matter of tallying up the percentages to make the table. I built a cumulative table first by just adding up the percentages. Due to the small fractional percentages of the low probability planets, this resulted in some planets having the same value.

To fix this, I fixed some of the percentages to 1. This in turn, pushed the totals above 100 for some of the species. To fix that, I then adjusted the percentages down on a few of the worlds based on physical characteristics and game lore.

I started by reducing the percentage of non-yazirian races on Hentz to one. This reflects (as mentioned above) the fact that that world is very rigidly controlled by the yazirian Family of One and non-yazirians are practically, if not in fact, second-class citizens. Next I reduced the percentages of yazirians on high gravity worlds. This is based on the idea that those worlds are less desirable to yazirians because their gliding ability is greatly diminished on these worlds and so the populations would be smaller. For the vrusk, I set the percentage on Kdikit (Madderly’s Star) to one to reflect the expulsion of the vrusk after the Freeworld Rebellion. Finally, I reduced the percentage of non-yaziran races on the worlds in the Scree Fron system because it is far from the core of the Frontier and deep in yazirian space.

After making these changes, and a few other small tweaks, I ended up with the results presented in the table above.

Thoughts and Discussion

This is definitely a first draft. It will probably get tweaked a bit as I flesh out the lore of the worlds a bit more. I may change the relative populations of the the various species as well as the overall population numbers for any given world (i.e not making all medium populations a value of 5 or every high population world a value of 8) That said, this is definitely usable to get a rough idea of where any given member of each species is from. Future versions will also include the Zeb’s Guide systems as well as generate tables for the Rim races, at the very least.

One thing that this doesn’t do is show the relative percentages of each species on any given planet. Since I renormalized the values for each race, that changed the relative percentages of the races on any given planet. As I refine those relative values a bit more, they will get reflected into the raw data used. I may start presenting that information in separate posts on each world.

What are your thoughts on the table? What other information would you like to see? What is missing? What would you do differently? Let me know in the comments below. And be sure to head over to the Random Encounter Tables post to check out the other posts in this month’s RPG Blog Carnival.

January 28, 2020 Tom 1 Comment

Posts navigation

1 2 3 Next →
Become a Patron!

Recent Posts

  • Second Battle of Kawdl-Kit (K’tsa-Kar) – FY61.347
  • Battle of Theseus – FY61.346
  • Building Print Editions of the Star Frontiersman
  • Detailed Frontier Timeline – FY61.294 to FY61.325
  • State of the Frontier – Dec 2020
  • HSS History’s Hope Deck Plans – part 1
  • Thoughts on the Second Sathar War
  • Battle of Ken’zah-Kit (K’aken-Kar) – FY61.296
  • Detailed Frontier Timeline – FY61.265 to FY61.294
  • State of the Frontier – Nov 2020

Categories

  • 3D Models
  • Adventures
  • Background
  • Creatures/Races
  • Deck Plans
  • Equipment
  • General
  • Locations
  • Maps
  • NPCs
  • Optional Rules
  • Patreon-only
  • Project Overviews
  • Reviews
  • Setting Material
  • Starships
  • System Brief
  • Vehicles
  • Writing

Recent Comments

  • Frank Patnaude Jr on Sathar Starship Construction Centers
  • Jess carver on Building Print Editions of the Star Frontiersman
  • Building Print Editions of the Star Frontiersman – The Expanding Frontier on State of the Frontier – Dec 2020
  • Tom H on HSS History’s Hope Deck Plans – part 1
  • Thomas Verreault on Thoughts on the Second Sathar War
  • Thomas Verreault on Extended Frontier Map – final update – Referee’s Map
  • Thomas Verreault on Extended Frontier Map – final update – Referee’s Map
  • State of the Frontier – Dec 2020 – The Expanding Frontier on Battle of Ken’zah-Kit (K’aken-Kar) – FY61.296
  • HSS History’s Hope Deck Plans – part 1 – The Expanding Frontier on Mapping Rosegard – Part 1
  • Thoughts on the Second Sathar War – The Expanding Frontier on Starship Construction in the Frontier

Archives

  • January 2021 (4)
  • December 2020 (5)
  • November 2020 (11)
  • October 2020 (4)
  • September 2020 (5)
  • August 2020 (4)
  • July 2020 (6)
  • June 2020 (5)
  • May 2020 (8)
  • April 2020 (5)
  • March 2020 (5)
  • February 2020 (5)
  • January 2020 (5)
  • December 2019 (7)
  • November 2019 (4)
  • October 2019 (6)
  • September 2019 (5)
  • August 2019 (6)
  • July 2019 (7)
  • June 2019 (5)
  • May 2019 (6)
  • April 2019 (7)
  • March 2019 (4)
  • February 2019 (5)
  • January 2019 (7)
  • December 2018 (5)
  • November 2018 (10)
  • October 2018 (4)
  • September 2018 (4)
  • August 2018 (5)
  • July 2018 (4)
  • June 2018 (4)
  • May 2018 (12)

Meta

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org
Powered by WordPress | theme Layout Builder