Saturday, August 23, 2025

Traveller System Update 19 - System Features

I started out adding the "Continuation Star System" by following the book, then realized I needed to add yet another table - the system features table. I did all that, got basic CRUD working, but also think I may have to really think about adding versions to some of these tables. For instance, you may want to be able to use the software to generate systems in different versions of Traveller. Currently it is primarily Classic, though the table could be used for any system I only have 1 version in the process. 

So, I am thinking of adding yet another (!) table - versions. And those tables that need that sort of delimiter, such as the system features table, could have that ID added. Then you could generate the system based on your version. Anyway - sort of simple to add later as most tables will not need that differentiation. System features, maybe starports, law levels, hmm, a few more possibly than I initially though. 

Anyway, I've added the system features table and basic CRUD but needs a bit of polishing. But I also added the first few steps of the generation service, which is when I discovered I needed more stuff to make that work. And this is why almost all software projects take a lot longer than expected: there are things we just do not anticipate. Of course, I should have anticipated this but alas, I blame the project manager (hey, I am throwing myself under the bus!)

Some of the rules listed under the table in Book 6 I may just hardcode in there. Not sure yet. While I'd like to make a lot of this completely under user control, not sure just yet how to add this type of rule. But if anyone wants me to think about it and implement that sort of thing, I know I can.

index view

edit

badly scanned book 6

Code for system generation - WIP. 

I got stuck when having to add the CRUD for this table, but the next step is to get the stellar type. Bad news is that we then need to cross-reference that stellar type to get orbit info so we can stash the primary planet into the habitable zone. If it is planet and not a belt. It is amazing the number of things to go through. And I do plan on adding flavor from some of the world builders stuff. It may take a while at the rate I am moving but it will hopefully happen!
 
So far, I just have get the planet, add that planet to our new system, and just the start of getting the stellar type. That was where I discovered I needed that table!

using TravSystem.Data.Repositories;
using TravSystem.Models;

namespace TravSystem.Services;

public class TSystemGenService : ITSystemGenService
{
    private ITPlanetRepository _planetRepository;
    private ITSystemRepository _systemRepository;
    private ITSubSectorRepository _subSectorRepository;
    private readonly ITStellarTypeRepository _stellarTypeRepository;

    public TSystemGenService(ITPlanetRepository planetRepository, 
        ITSystemRepository systemRepository, 
        ITSubSectorRepository subSectorRepository,
        ITStellarTypeRepository stellarTypeRepository)
    {
        _planetRepository = planetRepository;
        _systemRepository = systemRepository;
        _subSectorRepository = subSectorRepository;
        _stellarTypeRepository = stellarTypeRepository;
    }
    /// <summary>
    /// generate a new system based on a main planet
    /// </summary>
    /// <param name="id"></param>
    /// <returns>the new system</returns>
    public async Task<TSystem> GenerateSystemFromMainPlanet(int id)
    {
        TPlanet? mainPlanet = await _planetRepository.GetByID(id);
        TSystem newSystem = new TSystem();
        newSystem.Planets.Add(mainPlanet);

        // determine stellar type from main planet
        TStellarTypes stellarType = await DetermineStellarType(mainPlanet);
        

        _systemRepository.Add(newSystem);
        return newSystem;
    }

    //TODO: implement the complete system generation
    public Task<TSystem> GenerateSystemFromSystem(int id)
    {
        throw new NotImplementedException();
    }

    /// <summary>
    /// get the steller type; we will adjust the planet's orbit to be in the habitable zone
    /// </summary>
    /// <param name="planet">main system planet</param>
    /// <returns></returns>
    private async Task<TStellarTypes> DetermineStellarType(TPlanet planet)
    {
        // logic to determine stellar type based on main planet characteristics
        // this is a placeholder implementation
        var stellarTypes = await _stellarTypeRepository.GetAll();
        return stellarTypes.FirstOrDefault() ?? new TStellarTypes();
    }
}

Related Posts for Traveller System Generator

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-1-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-2-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-3-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-4-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-5-and.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-6.html

Part 7 towards the bottom here

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-8.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-9.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-10.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-11-and.html

https://traveller-ct.blogspot.com/2025/05/game-switching-traveller-system.html

https://traveller-ct.blogspot.com/2025/05/traveller-generator-part-13-settings.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-14.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-15-and.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-16.html

https://traveller-ct.blogspot.com/2025/07/traveller-system-generator-17-minor.html

https://traveller-ct.blogspot.com/2025/08/traveller-system-generator-update-18.html

Wednesday, August 20, 2025

Brass Rings Session 4: Into the Forerunner Ruins

 From the journals of Havarti Quickquill

At the grate we saw a great cavern - two huge flat trees dominated the room, and what looked to be shelves for giants were far off to the left. According to the map from Bucky, one of those flat trees was where he was rescued last year. There was no sight of him yet. An odd, flat round thing was whirring on the floor far away from us. I think it was cleaning this area for it was cleaner than some long abandoned place should be. And the lights hurt my eyes - bright flat white lights high up in the ceiling cast multiple shaddows on the floor.  
Finster got to work on opening the grate a bit more so that Bisquick and Vishy could fit through more easily. After that, with a spike from Jasper, Finster started in on jamming the spider doors. While he was doing that, John jumped up on the shelves. But somehow he must have triggered something as one of the spider trap doors opened up and a spindly, yet still quite large, spider came out. 

Vishy, remembering how effective the rope trick was last time, leapt up and managed to neatly lasso the metal spider. He landed on the shelf near John but on the other side of a box. These spiders must have been a bit stronger, as he was immediately pulled off the shelf as the spider went to attack Bisquick. While John shot at it with his pistol. Jasper moved into position and was also shooting at the thing. Finster managed to find it and kill it off with a blow of his pickax, leaving more holes in the metal carapace as smoke drifted out. And another spider from another hole came out - it scuttled right over to Bisquick and launched one its nets at the elderly rat, capturing him neat as a pin! Finster was trying to cut through the netting as the spider was dragging the struggling rat towards that northern door. John opened one of the metal boxes and saw it was full of glass vials and had had some Forerunner script on it. Jasper started shooting at it as John hopped over to a closer flat tree so he could shoot it. It too was finally defeated, more smoke coming out.  Bisquick was at the northern door, partially blocking it. And then it started to rain inside! 

That round thing seemed to hurry over, and small arms came out to life the first spider to its back. Forerunner tech is in high demand, so we tried to keep that platform from stealing the defeated spider. The rope was still tied to it, so Vishy was trying to hold it back. It got halfway to the door when it was also finally defeated. The floor was slick with water, but the rains finally stopped. I think it had to do with the smoke but have not shared my theory with everyone else. 

Bisquick shrugged out of the net but held on to it, thinking it may be useful. As soon as he did that, though, another of those round things came out from the end of the hallway in front of Bisquick. He used his staff to keep it from stealing our 2nd spider. And then I could hear Bucky's voice from the other chamber.

We killed off that second round thing, then started looking into the next chamber. Bucky was up high, in a metal cage. John climbed up, and Bucky complained about being trapped the last two weeks. He had some sort of dried food in a bowl, and water was in this transparent tube that had a metal tube sticking out - he had to lick a ball in the tube to get water!

John was befuddled by the lock, but Jasper apparently has some interesting skills. Climbing up and tying a rope to free his front paws, he had Bucky's cage open in moments. Getting out of the cage, Bucky told us that Miss Fay was taken a few days ago to another room. There was a door at the end of these shelves that had the same symbol that was on the odd thing hidden behind Miss Fay's mirror. There was no obvious place to put that thing. However, Jasper noticed a large square area that had a different color, and putting that thing up there made the door open up.

Inside, we saw that Miss Fay was in another cage, but getting picked up by some strange, huge thing on wheels or treads! It was a giant silver monster unlike anything I've seen before. I'll add some drawings when I have time.

sometimes simple is good

And stopped there as that was as far as my notes went. And it was 8:30 or so, and as I get up at 4am, getting past my bedtime! Still need to think about where we are going next - a lot of possibilities if I let myself be open to more fun stuff. It has been noted I am pretty literal about things. While that is part of being a good developer, it is not so great in games sometimes! But I do have ideas, but it also depends on what the players want to do. Not sure if Pinky's ornithopter will be able to take two more passengers, and possibly more spiders. 

Anyway, the flat thing is made of plastic and is an RFID key card. The characters have no idea about plastic or RFID. And one of the players mentioned Gog the robot when I described a silver robot with arms. So we are going with Gog! Maybe I should watch it this weekend. 

The question also came up as to how old these Forerunner structures were. Honestly Brass Rings is pretty bare bones in terms of that sort of thing. But it is 1000s of years old, but the technology is beyond what we have. Behind the scenes / meta-gaming, systems are being maintained but entropy will win out eventually. While Gog seems to be working fine, there may be glitches in its system. Though not going to move over to horror, there could be rodent skeletons in this lab! For this is a lab, and has basically spiders for cleanup/pest control, and the Roombas for keeping the floors clean. No one rode the cleaning machines I am sad to say. Had someone rolled up "ride the lightning" as an objective, that would have counted!


And yes, hoping to get a bit more work on the Traveller software this weekend. But I do need to think & plan for the next Brass Rings session as well. And stat out the robot - AC is 5 but how many hit (aka pep) points? A lot as it is huge compared to mice, rats, moles and sugar gliders!

Sunday, August 17, 2025

Corsairs Session 3 - Map Heist

 We were down one player, but up another player who can rarely show up (as I've said way too many times already - adulting is hard!) I had a jump scene basically, and bringing in an NPC to be played by a player is a heck of a lot better than me trying to play one!

He does have a background to fit into the game:

A citizen of the Alderil Empire, you became disturbed by its legal use of slaves. While you are a citizen, you've had people you know arrested and, depending on the crime, slavery was a valid penal experience. And the mines on the surface world are dangerous with a high rate of lethality. 

The last few years you have provided both information and clandestine aid to Repencarres Domain, a much smaller empire west of the vast Alderil Empire. Your contact, Lady Addrienne Pennyworth, Repencarres Domain Factor of Trade Station 412, has recently reached out to you to help the Windrazor, a small corsair with a letter of marque, to find a mine under the Dulcet Spire. You have a map of the mines, smuggled out by one of your fellow anti-slavery compatriots.

Essentially a way in and out of the Alderil Empire, a citizen who actually has valid papers and all that. But helping out. 

The session starts with everyone other than Henry in Lady Addrienne Pennyworth's office on Trading Station 412. Henry was ill from some bad rum (our missing player) so was aboard the Windrazor near a bucket. 

The Factor has tea served (actually Shou Pu'er tea, though the tea set was technically a cappuccino set but hey, it matched! Pastries were also served at the meeting, though in real life a bit later). After introducing Matthew Robards of the Alderil Empire, her Ladyship and Henry, her secretary excused themselves as to not get involved and have plausible deniability.  The crew are wary at first, but Matthrew presents a map of the mines where Batrina's siblings may have been. It was rolled up in his cane - apparently a good place to store documents. And Matthew has seen Captain Penny's father, about a year ago, in a prison (there was a very excellent lore roll). But where he is now is unknown, though probably moved to a mine somewhere.

However, the issue is now where is that mine - they know it is under the Dulcet Spire, a 2-day trip past the Empire's borders, about a week away in total. But somewhere within a few hundred square miles does not lend itself to a quick in and out trip in what is essentially enemy territory. Realizing they need a map, the convene the meeting to see about visiting the map office. Being a neutral trading station, there are commercial map libraries available that may have information and maps such as mine locations. Normally kept under lock and key but available to those who have the correct paperwork, these maps would greatly increase their chances of finding the mine before the Alderil Navy finds them.

Scoping out the map office, it is a building not too far from the air wharves, readily available for ship captains and Sail Masters. Inside was the principal clerk and another clerk, cleaning the shelves. There were also a couple ship crew members, copying a map. Maps and supplies lined the walls, and at the back of the office were 2 doors, both with "Private - Authorized Personnel Only " plaques on the door. 

Captain Penny takes some rum, splashes a bit of it and gargles. He veers into the mapmaker, who now has a giant streak of ink across the map. "Excuse me miss!" our captain slurs, further upsetting the map copier. Leaning and knocking over a map case, he has all attention on him while Matthew checks the back doors. The first is not locked to his surprise. Darting in, he sees a stairwell leading to the 2nd floor, and an office desk covered with some papers. Upstairs a quick check shows a storeroom: reams of paper, ink pots and various supplies. Back downstairs and, with the scuffle still going on, he tries the 2nd door. Which is locked. And after 2 or 3 failed attempts, decides the risk is too high as there is only so long that the captain and his crew can keep attention from the clerks and crew. 

Now, I probably have a pre-made map from one of those Kickstarters I backed that would work but I really did not think that far ahead, so did things the old-fashioned way: wet erase markers!

And as I really have no minis that match, and this was pretty abstract anyway, dice worked as markers. Because of course we have plenty of dice!

Deciding that the best time to see about that secret locked room as 2 hours before dawn, the crew relaxes and then heads out. While Captain Penny is at the corner of the alley and main street to keep an eye on the guards that come by, Batrina, Lionel & Matthew head to the back, rope & hook from the ship ready to go. Sadly, apparently the smell of Henry's cick bucket was still in Lionel's nose as after 3 attempts, he still did not manage to get the hook attached to the gutter. Trying to get Tibs to fly up, he tossed a pasrty to the roof hoping the dragonette would fly up. Apparently, he was too sleepy and did not. Frustrated, Batrina just climbed the wall - her prehensile toes for climbing trees are also good for climbing walls. Lionel and Matthew climb up, Lionel barely making it while Matthew climbed like a spider money (note that this game has exploding successes, and unlike myself, this player gets good rolls most of the time). 

Around this time two guards are coming around the front, and Captain Penny again plays the drunk. There is some play back and forth as Penny keeps the guards busy. Batrina is on the roof keeping an eye on things, and Lionel and Mathew break into the private map room. Using the card catalog* (which most of us have used, but we had to explain it to the 18-year-old gamer), they do find a map relatively up to date that gives the mine location. Apparently, Empire ships sometimes need the map and can get access here as the Trade Station is neutral to all countries. 

They make their own copies of the map and skedaddle back, and they all meet back at the Windrazor. I did not make Lionel roll to get down the rope - I was worried more dice would go into the already overloaded dice jail!

And that is pretty much where we stopped for the day. I was originally going to go ahead and just plop the group at the mine, but with one of the players missing, figured I could play the Rogue One thing to show how they got the maps they needed (that I need to create as well!) At least no Bothans died getting the maps out!

setting up a mine

temporary usage
But all was not lost - another friend came over Sunday morning, we generated some deep gnome characters in OSE and used the mines as a random dungeon crawl. Met 4 adventurers, the water fiend above and almost drowned, and managed to walk our way past 8 wererats (as I decided to get us started at level 3 but as we have no silver weapons, we would not be able to hurt them. Note to self: maybe start off games with silver weapons. Just in case!)

Hopefully people had fun, and it was a busy game weekend. Next weekend probably no gaming: I am on call for work and sadly I take responsibility far too seriously. And my Sunday friend we alternate games and working out - I met him at the gym years ago and managed to get him into gaming). But hopefully a bit more work on the Traveller system generator as its been a bit since I've had time for that.

* To be honest, I thought I'd be a librarian growing up. I love books, worked as a page in a public library for 3 years in high school, and the university I went to I picked because it had a library science degree. But I liked computers even more and have been very lucky in that career. So, guess it all worked out okay, though I do wonder what would have happened had I gone into libraries instead? Wonder if I'd ever end up a feral librarian?

Wednesday, August 13, 2025

Brass Rings 2025 - Session 3 game recap: A lengthy battle

 From the journal of Havarti Quickquill:

Our new companion, John Roquefort, had run back to the tunnel entrance. He grabbed some dirt and threw it on the red line. This was despite Jasper noting that the map said do not touch the line! We heard some clicks and then the sound of spiders coming down the tunnels in front of us.

Biaquick yelled to hurry back to the entrance - there would be space to get out of the way instead of being constricted in these Forerunner tunnels. Except that jumping meadow mouse instead pulled out a pistol, to shoot the first spider as it came scurrying down the tunnel to us.

I'll admit I was among those running back. Stories my mum told me of spiders stealing young Mouselings to never see them again always shook me, and I was not going to be one of those lost Mouselings! We hurried back along the tunnel, John firing off more shots that I beleive missed more than he hit.

Once outside, I ran around the corner to take cover. Pinky, our ornithopter pilot, jolte dout of his hammock as we came tumbling out, the sound of pistol shots loud in the mountain air. Vishy started climbing up the rock face about the tunnel - apparently Bisquick thought that perhaps he could lasso a spider and make it crash somehow. Finster, our Mole, went to the other side of the tunnel entrance, his pickaxe hefted over a strong shoulder. Though I did notice he was squinting a fair amount - he pretty much can't see much beyond the end of his nose I don't think. Jasper actually grabbed me and jumped partway back to the ornithopter, surprising me a great deal. But it did put us closer to Pinky, who had grabbed some rifles from his craft.

Bisquick seemed determined to keep the spiders attention - he put his cloak on his staff and was waving that about. Jasper and Pinky were aiming rifles, John was firing a bit more then moved to the side of the entrance. Some shots and the 1st spider was killed, smoke pushing through the bullet holes. The 2nd spider got lassoed by Vishy, who jumped off. But the spider was too heavy for the Sugarglider, so he jumped towards us, the rope taught and tried to keep the spider off-balance. I helped by grabbing on to the rope.

The next spider was coming out and Bisquick actually peed in the dirt - we know he is old but we did not imagine he was also incontinent! But he took up the mud and rushed at the next spider, throwing it on its eyes to try & blind the mechanical beast. Pinky was yelling that he had a cargo tarp and "that old Rat is going to be sitting on that tarp on the flight back!" as he shot again.

John was almost caught by one of the spiders as a net came shooting out. Bisquick was actually caught but we managed to kill that spider as well.

The fight ended finally with Finster making a mighty hit on the last spider, actually breaking it in half. We took a few minutes to breath in relief. We took the spider pieces and loaded them into the ornithopter - they would fetch a good price later as Forerunner technology is always in demand. Probably why Pinky allowed Jasper the use of one of the rifles for the rest of the trio, and also sold a ammo belt to John at cost apparently. He was muttering only living clients paid their bills as he heated up the fire. He was not going to get the boiler to full strength, but he was concerned we may have to take off faster than expected. Apaprently it takes a bit to get that steam boilder hot enough to power the ornithopter.

We went back into the tunnels. This time John did NOT throw dirt on the line, and Finster rapidly dug under the line a hole big enough for Biquick and Vishy to get under the light line without touching it. Moving up the corridor we saw the map was marked to have spider remains, yet there were none. The spider trap door was still wedged shut with a bit of spider claw. We got to the grate leading to the great room and started looking around.

To be continued...

okay, somehow we spent about 2 hours just covering that battle. Well, that and talking a great deal and I had to walk my dog a bit as well. We used Owlbear for the battle, and I had scanned in a map I made up.

Bucky & Miss Fay's Map

end of battle. there was a Y junction above but all we needed was a guide. plus it loads faster

They will hopefully explore more of that map - I actually have a page of notes about all that. 

Wednesday, August 06, 2025

Brass Rings 2025 - Session 2 Recap: Into the Tunnels

 From the logs of Havarti Quickquill:

We arrived at Endkeep Station mid-morning on a Sunday. We unloaded our bags at the station, taking in the rustic view of the small town. The railroad workers loaded up afterwards and the train started on its next leg, to the end of the Royal Rail about 30 some miles further along.

Too early to check into the Eastern Hostel, Mr. Templesmith, Mr. Dusttail and Mr. Wensleydale took in the town. Having been in Endkeep Station before, I stayed by the bags at the station to rest a bit. I was still a bit harried from that drgaonfly attack in the middle of the night. Though Mr. Wensleydale had an excellent accounting of himself - took one of those monsters down in a single shot. Mr. Dusttail and Ms. Smokeveil took the other mechanical thing down, with Mr. Templesmith bravely ready for handing out more ammo. I'll admit to hiding under the seat. 

After their tour of the town, we were checking in. Two others seemed to join our group at this point: a meadow jumping mouse gong by the name of John Roquefort, and a sugar glider by the name of Vishy. Mr. Dusttail, in his normal somewhat belligerent manner, invited the two to aid us. As I have some discretionary spending thanks to Gouda Parsnip's family, they were hired on the spot as well. I've not mentioned the Gouda's family involvement with this journey yet. Mr. Roquefort seems to be on some sort of journey of self-discovery, his pack well-worn. I am not certain about Mr. Vishy. He speaks with an accent I am unfamiliar with, but as he is the first sugar glider I have met, perhaps that is just the way they speak.

Knowing the trip would require transportation, we hiked out to Pinky's Ornithopters. He was working under a larger, cargo ornithopter, banging on some pipes. We spoke briefly and set up the time to show up at about half an hour after sunrise for the 2–3 hour journey to the Forerunner ruins. 

We slept well at the hostel, and awoke with our wake-up call. The ever delightful  Mrs. Longtail had made us some fried cheese curds for breakfast, and I am fairly certain she cast an appraising eye towards Mr. Dusttail. Mr. Longtail had perished a few years before apparently. From the conversations I've picked up, our Mr. Dusttail has apparently been in some 12 or 13 relationships with our better halves. He is rather old, so perhaps it is true. We made the journey to Pinky's in the dark, with the sun starting to rise above the rings behind us. 

Loading our bags, with steam blowing out of the engine, the great wings of the ornithopter started beating and we lifted into the sky. Mr. Vishy was on a tow-rope and seemed to enjoy gliding along behind the craft. We passed over a large pond, Pinky letting us know that both killer koi and red-eared sliders inhabit that body of water. And that he has seen at least one black snake near the ruins. Which is apparently why Bucky and Miss Fay did not camp out there. For a reason I've yet to ascertain, Mr. Roquefort decided to see if he could "ride" Mr. Vishy to the ground as we were approaching the ruins. They managed to that feat - perhaps they are getting ready to use that in some sort of emergency. 

The tunnel to the ruins was large enough for a mouse, but Mr. Dusttail and Mr. Vishy may have a hard time fitting. Fortunately, the team had bought some additional supplies at Miss Ophelia Whisker's General Store. Mr. Templesmith is an excellent digger - the entrance was enlarged quite quickly. I did notice Pinky had set up a hammock and was resting in the shade under the ornithopter, sipping from a flask.

We noticed that there were mouse footprints, but also the divots in the dirt that indicated those horrible spider-mechanicals were also around here. Perhaps that is what happened to Bucky & Miss Fay! I'll admit my paws shook a bit as we entered the tunnel, checking the map that Bucky & Miss Fay had left behind. Which does beg the question - did they leave this behind or is this an out-of-date map, and they kept two for redundancy?

Fortunately, I had brough along a hand-torch as we entered the tunnel. Reviewing the map, we were trying to ascertain what "avoid the red line" meant when we found a glowing red line, just below a Y-junction in the tunnels. While us smaller mice could probably jump over it, Mr. Dusttail , Mr. Templesmith and Mr. Vishy would probably touch that odd line. Mr. Roquefort ran back to where there was some dirt and tossed it on the line. Then we heard the horrifying sounds of mechanical spider legs scurrying down the tunnel, towards us!

And that is where we left things. I still need to draw the map - I tried a few electronic ones and was not satisfied. Last night I drew one and also have almost a page of notes. Not entirely sure I'll keep that one yet, but it is a start at least.

spiders!

a different spider!

cargo ornithopter

2 rodent ornithopter




Sunday, August 03, 2025

Traveller System Generator Update 18

I had a bit of time this weekend and cleaned up the planet details page to include the hex code and names for a few more things, and added the service to generate a system to create from an existing main world or from a system ID.

some better information and generate system option

The plan (and I've not done more than update the controllers and views to verify things will get called and go to the right place) for the service is that it can be initiated from two places:

  1. from the planet details page. Selecting this will:
    1. see if the main planet is attached to a system already. if not, exit with "we need a system" type of error
    2. if the system has any planets other than that main one already created, just return the system ID and go to the system details page
    3. else create a new system based (initially) on Book 6 Star System Generation Checklist (p24) and return the system ID and go to the system details page
  2. from the system details page, similarly:
    1. if there are any planets already in that system, return the ID and go to the system details page
    2. generate the system from scratch and go to the details view with that ID
I also created a "Contracts" folder in the services directory to put all the interfaces (which are basically a contract for the software to know what things are supposed to do. Never really used them much before but now I am finally seeing their usefulness for this type of development). Just an organizational thing - I've repeated many times I do like organizing things, but sadly I am really bad at it most of the time.

Anyway - did make some progress at least. Slow as it is just for me to play as there are already several systems out there, some really nice ones hooked into the TravellerMap site. But I just like to play with things like this. Always interesting to see how other people do things. Mine is probably more enterprise-like in a few ways though, as that is what I do for a living (the author of the TravellerMap I want to say works at Google and think his map is also very enterprise-grade software, and one of these days I am going to have to download his GitHub repo as it is written in .NET (an older version based on the read me) and so I should be able to figure it out!

Related Posts for Traveller System Generator

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-1-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-2-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-3-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-4-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-5-and.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-6.html

Part 7 towards the bottom here

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-8.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-9.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-10.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-11-and.html

https://traveller-ct.blogspot.com/2025/05/game-switching-traveller-system.html

https://traveller-ct.blogspot.com/2025/05/traveller-generator-part-13-settings.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-14.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-15-and.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-16.html

https://traveller-ct.blogspot.com/2025/07/traveller-system-generator-17-minor.html

Wednesday, July 30, 2025

Brass Rings 2025 - Session 0/1 Recap

It was a bustling evening in Pete's Peanut Gallery in the Great Tree. Finster Templesmith, a Mole, was nursing his tea and listening to Bisquick Dusttail, a grumpy older Rat a bit hard of hearing it seemed, trade jibes with Jasper Wensleydale, a hyperactive Jerboa. A mouseling runs to the table amidst the hustle of a busy evening at the Peanut Gallery.

"Are you" and looking down at the paper in his hand, "Mr. Templesmith, Mr. Dusttail and Mr. Wensleydale?"

Bisquick answers with a surly "Who wants to know?" scaring the little one. Once he gets an affirmation, he hands them the paper and says Dr. Crackers would like to speak with them if they would. And darts off, whiskers shaking in fear of the formidable older rat.

Dr/ Crackers is in his office, a bit higher in the Great Tree. behind him are two other Mice. Introductions are made: Dr. Crackers is well known, his nephew Brie Parmesan and his wife, Lady Gouda Parsnip, of the Parsnip Family.

Gouda Parsnip
"As outstanding members of the Seeker's Society, I have a request to make of you, if you would. My nephew was rescued last year but Bucky and Miss Fay. He was found in a Forerunner's structure. They've gone back and, well, we've lost touch with them. They have been consistently communicating with us but their last message is almost 2 weeks overdue."

Questions and answers were passed along: they get paid 5 washers a week each, and room, board and transport costs are covered, and a 30-washer payment for any supplies they may need for the journey. It is a 2-day trip by steam rail to Endkeep Station, with the train leaving in the morning. 

Agreeing to help Dr Crackers, they get some additional information from Bucky: maps of Endkeep Station, some notes on the Forerunner facility. While Finster and Bisquick finish getting supplies and go to sleep, Jasper spends the night dancing at the club, drinking no tea but imbibing in a variety of cheeses and dancing with winsome Mice all night long.

At the train, they meet up with Havarti Quickquill, the messenger employed by Dr. Crackers.

Havarti Quickquill, ready for adventure
They bustle about and get the gear they purchased and their luggage into their sleeper car accommodations. Jasper is not quite awake and falls asleep as soon as his tail hits the seat. He mumbles a bit about Bisquick and Finster talking too loudly and falls back asleep. There are a few short blasts as the train is getting ready to leave the Grand Station at the base of the Great Tree. The conductor makes the passage through and punches tickets for our adventurers and the other 3 passengers on the train.

Talking with Roquefort, Bisquick licks the book he is reading. In a huff, the librarian Mouse thinks they are uncouth, and pulls the book back closer to himself. There was a bit of discussion on cheese worms making the holes that our awake travelers believe in despite Roquefort's somewhat vehement explanation about gas bubbles and fermentation.

Goudalyn Smokeveil

Roquefort  Rattlewick

Swiss Cogsworth
The train moves along, leaving the Great Tree, passing through farms, and eventually leaving most of civilization behind as it crosses the F-Ring towards Endkeep Station. Dinner is served at the dining car, and Colby Steamwhistle serves the cheeses and teas. Our adventurers also stuff their pockets with extra food. Roquefort tells the serving Mouse he enjoyed his repast and heads back to the seats to continue to read his book on the history of Swiss cheese. Wanting a repast himself, Bisquick demands one. Smiling, Colby finds a wax-wrapped Quark cheese, which the elder mouse puts into his pocket. 

As darkness approached, there were some sort whistles from the engine. The conductor hurries through the cars, to see if anyone has familiarity with rifles. 

the Conductor with no name
Colby has unlocked the arms locker in the dining car and was handing out rifles to those who would take one. Finster decided that with his eyesight, and the Hat Incident with Bisquick, that he would be in charge of handing up ammo as needed. A ping on the side of the car alerted the group that they were indeed under attack. Climbing up, Jasper and Goudelyn took to the roof while Bisquick was on the ladder on the car. There were 2 smaller dragonflies and one larger mother craft. The dragonflies are Forerunner technology and attempt to kill the rodent population of the Rings.
Dragonfly Art Station

A quick battle ensued: Jasper made an amazing shot and knocked one down on his first shot. Goudalyn and Bisquick managed to down the other Dragonfly between them, and the mother craft buzzed off. 

Back inside, it was explained that these flying monsters did attack the train sporadically. Light armor was added to the train which is usually enough to keep people safe. But our heroes will get a golden ticket: free train rides for the next year. 

The next morning, the train arrives at Endkeep Station. Our heroes get off, and several workers get on. They were on a short furlough but are heading back to the next station to continue to extend the rail line. 

Havarti takes them to the Eastern Hostel, where they meet Bernice Longtail, a Rat with at least a dozen ratlings playing in the lobby: Jasper, Jason, Jacob, Jeannette, Joesph. Apparently, Bernice has an affinity for the letter J. Still too early to check in, she does allow them to look in rooms 9 and 10, where Bucky and Miss Fay were staying. The beds were neatly made, and an investigation found some maps in Bucky's room, and an odd rectangular plaque or something with a hole in it behind the mirror in Miss Fay's room. Looking at the map, they saw markings similar to what was on the plaque in a northern room of what appeared to be the Forerunner building. 

Having some time to spend before they can check in, the heroes do a bit of sigh-seeing about town. A previous post tells us about the town. It is a bit larger now, being a year later, and having a bit more rail traffic going through.

And that is where we left that session. I'll fill in more details with the town as they will encounter the other train passengers and may want to know more about them. And I need to get that map done.

Sunday, July 20, 2025

Traveller System Generator 17 - minor updates

 I finally got back to this and corrected a minor issue that was breaking things. Taking breaks helps sometimes. I also added the system to the planet views (index, edit, create and details) so you know which system the planet belongs to.

I still need to get to the "create all the planets for this system" and may get to it after I post this blog. But I got a few things done that bugged me. I also found that there is another way to run this as compared to the directions I gave in this post. If I create a zip file of the "publish" system, there is an .exe you can just run. I know it works for PCs, and only fairly certain it will work on a Mac, assuming you have the .NET framework installed (and those directions include how to download that from Microsoft). I will have to test the Mac at work (though it is sitting right next to my desk at home, really don't want to pull that out as my desk is way overly cluttered with half-assed painting things. Need to stop starting and start finishing!)


Finn is my dog, and June Bug one of my cats.


Anyway, progress, if slow mostly due to it is only for me and until (and if!) I get people wanting to try this, I am working in a fairly desultory manner. 

Note I found the new method of execution while deploying .NET at work. Currently a very manual process, you basically do "dotnet publish -c Release" which creates a publish folder of everything it needs. Copy that folder to the server where it goes. And mostly done: as we are deploying on a Windows server using IIS (which I've not used in probably a couple decades but still looks the same, so only took a little bit to get back to at least basic functionality!) we turn off the service first, and I delete all the files in that directory. As I don't want any leftovers from previous deployments. Just to be sure. But when things screwed up (as they inevitably do) I've got some console writes when the applications start up, so I can see where things break. Very old-school debugging!

can never be too careful

And hey, my caves order from Archon showed up - a big box! But I am saving it to open next weekend at our game meeting as we meet face to face. While I am not a fan of the "let's open this box & make a video of it" I am a fan of opening that same box with my friends. Who knows - we may even use some of it that session as I did get a few of the pre-painted things just to see what they looked like. 
the box is as big as Finn! and cat ribbons everywhere. Along with boxes for the cats. My house is pretty pet friendly.

Related Posts for Traveller System Generator

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-1-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-2-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-3-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-4-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-5-and.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-6.html

Part 7 towards the bottom here

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-8.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-9.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-10.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-11-and.html

https://traveller-ct.blogspot.com/2025/05/game-switching-traveller-system.html

https://traveller-ct.blogspot.com/2025/05/traveller-generator-part-13-settings.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-14.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-15-and.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-16.html

Sunday, July 13, 2025

Corsairs 2025 Session 2: To the Mines

Somehow, I've misplaced the notes from the 1st session. I thought I was doing everything in one specific notebook but alas...I do have the notes for the 2nd session though. And those 1st notes will show up, just like the T5 deck plans I seem to have misplaced. Or perhaps I am just becoming senile and can no longer track everything. 


Our group, back at the Brown Betty after meeting with the Repencarres Domain Factor Lady Addrienne Pennyworth's office, discuss plans as 3rd mate Smitty gets the stores replenished. This incudes 7 new crem members as the trading port does have a jobs board. Sailors may often change ships and ports are a convenient place for that. Deciding that a search and rescue of potential slaves is a good thing, the head off to the unnamed island. A favorable wind makes short work of the trip, and with the map the took from the Trenner Trade Guild's ship the Windrunner, they spy out the lands before preparing to dock. 

We had a brief world-building discussion: ships will almost always flay a flag. If they are part of a navy, their country flag (along with a ship specific flag below that, though I just added that). Trade guilds will fly their flag, though if it is a guild that is controlled by a nation, then the national flag above the trade guild flag. But I think there are not too many of those. Privately owned ships will fly their owners' flag, sometimes the country flag depending on where they stand in the power hierarchy. Flags are important in this world.

Deciding to fly the Trenner Trade Guild flag, they espy 3 picaroons (okay, that is the Corsair name and apparently they are always in groups of 3) at the dock outside the mine entrance. It is a rough dock, but large enough for ships to dock alongside. I actually had some poster art from a KS campaign so at least had sort of what it looked like as they approached. They dock and the command crew disembarks. The head guard, noticing that the crew is not wearing guild uniforms, sends off one of the guards who scurries back to the mine.

"Papers, captain. And we were not expecting a ship so soon after the Windrunner." Captain Penny searches his pockets, then turns to Quartermaster Batrina. She hands the captain some papers, who in turn gives them to the head guard. Who looks up as soon as he sees it is a newspaper. The captain swings and entirely misses. Sailmaster Leo takes aim, and with exploding dice, nailed the other guard. Batrina also shoots but the guard was already dead when she shot at him. Our intrepid Gunmaster Henry manages to throw the head guard off the docks, to plummet a few thousand meters to the jungles below. It gave him plenty of time to regret his life choices perhaps.

With several of the crew behind them, they start into the mine. It is lit by torches, and tracks from ore wagons are easy to follow. Heny and Leo scout ahead, leading our privateers deeper into the caverns that are being mined. At one point they can smell the kerosene smell of fire imps, but they are off in the distance. Yes, we had more world building, and I decided that these self-combusting creatures had to have their own smell.

A bulbous scaly body, four legs,and a humanoid torso, these creatures are found on many of the floating islands. Named fortheir tendency to burst into flame when enraged, which is almost all the time, they can be dangerous to ships, crew, and, well, anyone. Special Ability: Can burst into flames and start small fires.

Pressing on, Tibs, Leo's pet dragonet, starts getting agitated. Listening carefully, they group can hear the sounds of dragonets far back in the next large cave. One of the new recruits, avarice apparent in his voice, does say how if there are eggs, they can fetch a mighty good price in the market. Henry asks if he can shoot the new crew member, but the captain dissuades him.

Continuing on, neither of our scouts manage to observe a trip wire and alarm bells sound off. From the passage above, several trade guild guards show up, swords and pistols in hand. The fight, however, is brief: 2 of the guards are killed in the 1st round, the greedy crew member gets shot and killed, and, seeing as they are outnumbered, the guards lay down their weapons. 

Captain Penny asks who is in charge, and dead bodies get pointed to. At least the trade guild leaders actually lead from the front! They find that a heavily barricaded tunnel is keeping some surface creature out. No one wanted to investigate that! Tying up the guards except for one, they leave their crew to watch the trade guild members and go to the next cavern to find the slaves. One of who turns out to be Amaro Villeneuva, Leo's father taken more than a year ago. Bedraggled and in poor shape, there is a bit of a family reunion, though the others have no idea who the old man is. Some explanations later, and Batrina asks if he knows of any slaves like her. He recalls a girl bat slave in the surface mines below Dulcet Spire. Which is inside the borders of the Alderin Empire.

As they are leaving the cavern, they get attacked by giant crabs!



The captain was pinched a great deal but only pinked (Corsairs has a damage track and the 1st 4 hits are "pinked", next 2 are "maimed", then a couple more slots and then dead). The guard screams and runs off, only to be clotheslined by Leo who rushes back, as does Batrina and Henry. The captain tries to shoot the crab pinching him as well as the giant one leveraging herself from the river. I think he pinked the big one but missed the other. Batrina is fighting the giant crab. Henry moves around to attack the smaller crab. Fortunately, the few times I rolled well for the crab attacks, the players also rolled well in agility to dodge. So, I did not kill anyone this session, other than the greedy crew member, and four of the trade guild guards/mine overseers. Though one of the crabs actually rolled several exploding dice, as did one of the players that, like me, traditionally has horrible rolls. 

They got the slaves settled into the cargo hold, and Captain Penny had Henry lay a line of explosives to seal off the mine. I think they were planning to leave enough space for the fire imps and dragonets to be able to get out, and this was the roll where he kept having exploding successes. However they wanted that mine sealed up, Henry excelled at it.

And that is where we left things. No pastries this time, but I did make banana bread from a box, and everyone seemed to like that this time.

We've also established a few additional crew members, but I'll put them all here.

Vendel, 2nd Mate. Rarely seen as he runs the night shift. I need to get some personality to him at some point. 

Smitty, 3rd mate. runs a lot errands, and keeps the ship stores up to snuff. Also hunts for new crew as needed. 

Pebbles Whitby, the ship's cook. Not a bad cook, but not a great one either. She at least did not mess up the crab that the crew and new guests will be eating for a bit.

Maida Fielding, ship's carpenter. 

Unwin Alderige, ship's doctor. Who gets plenty of practice with this crew. Good thing the specifically stocked up on medical supplies this trip!

And while I did prep for this session, I did not have my notes from the last one. I need to get a good summary to have ready with the places and people they've encountered. And while I do this via this blog, it is not convenient thing at the table. Think I'll see about creating an outline and have it printed. Though I have a lot of printed papers...I'll have to take a picture of the inside of the DM screen I use - it is magnetic, so I do clip papers there. At least I am trying to get organized!

And I did see the new Superman movie this weekend. Took some friends of mine, one who turned 70 today! I enjoyed it - it captured the characters the way I see them mostly, based on my reading of Superman comics and stuff in the 70s. First movie in the theater I've seen in a few years. And yes, Krypto is very cute. I also enjoyed Nathon Fillon's Green Lantern - think he nailed that particular character. Hawkgirl was a little less defined but hoping they can do more with her. And Mr. Terrific was really good: though I really do not know much about that character, the actor had some nuance with it I thought. You can also see how the Kents grounded Clark and just why Superman is more human than many humans (which was one of the points of the movie honestly in my opinion). It is definitely a comic book movie and takes great glee in being a comic book movie. People are used to mass evacuations after 3 centuries apparently.

Friday, July 11, 2025

Got Stuck

 okay, not a lot of progress (or any) on the Traveller software front. Work got a bit busier and, as much as I like doing it, after spending all day doing basically the same thing a little break is nice. Plus I am still working on 2 games I'll be running shortly so I've been at least trying to get ahead of things there! So I am currently sort of stuck for personal software projects. 

Tomorrow (Sat July 11, which will be in the past by the time most of you read this. Time is funny that way!) be doing the Corsairs game at my house. I've morphed the world a bit from the original gamne conceit, and while poking around found a sprue of water-based creatures. And as I do want to introduce some creatures from the surface, and the group may be exploring a mine, so I put them together. Sadly I don't think I'll get a chance to paint them before then. And not sure if I have any minis that will work for sky pirates of the steampunk variety but I do plan on checking tonight after work. And wondering if I do a base coat in black, then use red and try to shade to white, will that work? it will make it dark which I think is where I need to go with these. Normally if I base I use grey. But I don't always base things - lazy! 

and he brought friends!

a cuddly crab. uh-huh
I've re-read the players' backgrounds, started taking notes via OneNote to see if that possibly helps me organize, and have a vague plan at least for that game. It will bring in one of the player's backgrounds and if I can make it work, hints towards another. And utilize one of the characters who is actually from the dreaded surface (humans tend leave it alone as they die at an alarming rate there). I'll have details on the next post, as it will most likely be the game recap. I even have a map, created from blending several randomly generated maps. Still thinking of linking the game to Traveller: the Spires are made of either bonded superdense or crystaliron :) I may add a secret metal door that leads to one of the many 0-Hr deckplans. Just to have it get used. 
mixing and matching maps

Also working on the Brass Rings game a bit: added some maps for that as well, found one today that looks like I can use that for the Forerunner lab if they go there. Scaling is an issue there: Brass Rings you are playing rodents. So a 10' wide hallway is like 75' wide for them. Not sure how I'll handle that if we end up using the VTT for anything. But I've a week at least to figure that out!

And sadly probably not going to back the latest 0-Hr kickstarter: it is a nice ship but I have way too many of those and I am not using them. And while I normally back at the minis in this case, it is a rather bland one that, while it does include little fighters and a shuttle, I just don't see getting any use out of them as I already have a lot of those. Though I may end up backing for the minis anyway but I may be able to say no. FOMO is a horrible thing! I can always get them later if I feel the need at his site anyway. 

And while writing this. Google said it found links to add. I said yes, but do not see anything actually added. As I've not actually added any links, anything you find linked is a result of that automation. Curious to see what, if anything, it did!

And finally - how did we get more than halfway through the year? Getting older and time just speeds up far too much.

Sunday, June 29, 2025

Traveller System Generator Part 16

Not a particularly useful update. I was having problems with adding the systems to the subsector so that clicking the subsector details would give you a list of all the systems attached to it. But there was something screwy and could not figure it out, so dropped it for a few days.

Came back and still having that issue but finally figured it out, I think. But in that process, I decided I needed to consolidate the migrations to get the DB back to working as I had messed around a bit and things were wonky. I saved off the existing DB, deleted all the migrations and created a new one that gets the DB set up correctly. That also meant all my previously entered data was gone. But: I made a backup, so I exported most of that data & imported it in and that seemed to be okay. I may add those scripts to the source control but that may be starting on the infringement part of copyright, so I probably cannot do that. 

Anyway - almost back to where I want to be to start adding the new stuff: create all the planets for a system. Go through various resources such as the Mongoose World Builder book and see what I can add from that (and maybe that will make more sense for me for the stellar stuff. For a SF nerd I still have too vague an idea about a lot of that!)

Slower going at this point than it was in the past. But I am also only doing this when I feel like it and have time. I've realized over the years that you can't do things you really don't want to, but I also counter that with knowing how lazy I can be. But that also goes into running games: sometimes it is really hard for me to run games, and I'll be running 2 shortly (1, the Corsairs game, already had session 1, see my last post. Brass Rings is coming up in a week or two for the Monday group). I get nervous about running games as I've mentioned way too many times before, yet I still run them. Though I really think I make a better GM-support person: I can create the maps, do some world building, generate NPCs. but running things is sadly a bit nerve wracking for me. And yes, it is all in my head! Sad part about being sometimes self-aware is not being able to do anything about it.

But as always, I digress. The other thing I noticed when saving the project to source control was that I am also saving off the DB. I'm going to add that to the ignore list of things to save as this will possibly overwrite anyone else's database when they download the source files. Something I just did not think about. I also use another tool to poke at the SQLite database. If anyone wants to know what that is, let me know!

And finally, one of my COTI friends has entered hospice which is disheartening. I've never met him, nor really exchanged more than a few emails and DMs over on COTI over the years but he is one of my followers here, as well as exceptionally excited by Traveller and a valued contributor to T5. So that just sucks basically. 

Sorry to end on a sad note.

Related Posts for Traveller System Generator

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-1-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-2-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-3-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-4-of.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-5-and.html

https://traveller-ct.blogspot.com/2025/04/traveller-system-generator-part-6.html

Part 7 towards the bottom here

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-8.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-9.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-10.html

https://traveller-ct.blogspot.com/2025/05/traveller-system-generator-part-11-and.html

https://traveller-ct.blogspot.com/2025/05/game-switching-traveller-system.html

https://traveller-ct.blogspot.com/2025/05/traveller-generator-part-13-settings.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-14.html

https://traveller-ct.blogspot.com/2025/06/traveller-system-generator-part-15-and.html