Tuesday, May 27, 2025

Traveller Generator Part 13 - Settings and Stellar Types

Figured we needed to have settings to control a few things. Some settings are for "generate a subsector" vs "generate a system" and there will be more as I get to writing that stuff. I am first doing the stuff I needed for the Book 6 system generation from an existing main world. And then I realized I needed all the stellar stuff. And that got tricky: the schema is simple enough. A star may have zero or more orbits, and they are I/H/O for inner, habitable and Outer. But getting the page to be able to add orbits on demand is beyond me; fortunately, AI is pretty good at that sort of thing.

v1 of settings - realize I think I can stick the base ranges in here

How stars work. though not sure I am really doing that right!


I may have to add more stuff as I read through things, and I managed some bad names so may correct those with a subsequent update as well. I need to have the range in the stellar types I just realized: i.e., B = 0-1, B = 2, M = 3-7 and so on. And figure out the DM - coming from a main world we add 4 to the roll So a new setting there as well.

And - why all the settings? So that the user can adjust things as they want. Book 6, while I like it, has (at least according to people who know these things) issues with what we think systems should be. And while true, it is not a simulation of reality but a game universe. Regardless, I'd like any potential users to be able to set things up the way they want. Plus, it means I am not including data with the software so any issues with copyright and all that I *think* are bypassed. But as I seriously doubt this will ever get used by anyone other than me, it is all okay. 

There are still some quirks with the edit for orbits (e.g., you can't actually edit once there!) and I want to add a dropdown for the type and reverse the order in that partial so you do the orbit 1st then the type. And preferably on a single line. But at least what one of my first bosses said, it has basic functionality!

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

sorry - added after the fact and blogger is not great at moving images!

Sunday, May 25, 2025

Game Switching, Traveller System Generator Part 12

After mulling over the last session (and trying to stop feeling sorry for myself!) I talked with a couple of the players, and they are okay with me switching the Saturday game to a different game while the survivors heal up at Kegbeard's place. I do want to return there, but I want to figure out some better ideas for running TFT.

And I started some more prep for the eventual Monday night game, as we are returning to the world of Brass Rings. Hooking with one of the returning players from that 2-3 session game we ran. He played Bucky:

Dr. Crackers (who sent out Bucky Bridgewater & Miss Fay Meadowheart to find his nephew, Brie Parmesan) has gotten in touch with Bucky - Miss Meadowheart has gone missing! She had made copies of the plans and documents Brie found at the Forerunner location back at Endkeep Station, and was determined to see if there was more to that complex than what they found. That was more than two weeks ago. Miss Meadowheart's aging parents, Fromage and Sweety Meadowheart, have offered to finance her search and rescue. Apparently she is the sole heir to Meadowheart Farms, an expansive mini-goat farm near Tannis Falls and the Greate Tree. They have 200 washers up front to pay for supplies and tickets to where she was last known to go: Endkeep Station!
This is the Monday night game, and that game is pretty light rules-wise. I just need to loosen up (which is hard for me - I live and work a world with pretty strict rules on how things work. Why I prefer crunchy games, though one would think I would like to let loose of those restrictions. But anyway...) We've a bit more time before I have to start running it, so I do want to create some more maps and locations and a few things like that. One of the interesting game mechanics is before each game arc, they roll on a table for an objective. They get extra XP if they manage that goal. And I'll be adding XP for cheese puns in the game as the core game has a that light-hearted approach.

For the Saturday group, we're going to switch from TFT to Corsairs - sky pirates! My idea is that they are a pirate crew on a corsair, complete with a base of operations on some floating island. I have a large-scale world map I made for that game last time we played. The immediate goal is to be determined, but they are going to be sponsored by one of the kingdoms as a privateer, and perhaps some spying, espionage, destruction of enemy supplies. That sort of thing.
Tebou, World of Corsairs
Based loosely on the map in the book. I've also bought or received the updated character and ship rules. But I also need to re-read all that to get that straight in my head as well. Though sometimes I do feel my brain is getting full over the years. Or just slower. 
Classic Farside by Gary Larson

Miscellaneous

I link to the games I mention where I can - not to try and sell or anything as I have nothing to do with these games other than playing them. But figure some of you may want to review the games themselves. Plus, I like cross-referencing things - miss the old card catalogs from libraries. Yeah, odd segue, I know.

Traveller System Generator

Made a bit of progress on adding bases to systems. Issue is it adds but does not remove. But I'll get that eventually. Decided to leave that as-is for the moment and start on the "create a system from this main planet". Where the planet generator creates the main planet, but then we want to generate the system from that. We've got the bases now added (though never removed - yet!). Need to generate the sun, belts, gas giants and all the other planets. I'll be adding the PBG so that the user can control that part. As I have Memorial Day off (though on call, so need to check the computer once in a while) I may see if I can get a good start on that process tomorrow. Which means re-reading Book 6 to start with.
Bases! And now realize I need to add the planets it has, PBG. And make it pretty.

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




Tuesday, May 20, 2025

TFT Game Recap 10: A Couple of Deaths

I feel I screwed up this session. The demon was a bit overpowered in some ways, and I don't think I actually ran the combat well. Of course, old school games can be very lethal. The battle started when they were ready, but it really only lasted a few rounds.

The dice gods hate me - I rolled great for the succubus and her attacks and damage, but horribly for the NPCs I ran attacking her. And my players did not do a whole lot better: first round, the elf gets killed with a backhanded blow that threw her across the dungeon against the wall. A bit of damage was done to the demon from a few of the players and NPCs but not enough to throw her off her game. The lizard man does get two attacks (he has a tail, and I just parlayed the double fire for missile weapon into his native tail should be a pretty well-earned ability). He managed a bit of damage, and the others were trying their best, but my NPCs missed. One even dropped her spear - I rolled a 17. Next round the succubus manages to hit Hexis, the lizard man, but not quite killing him. The halfling manages a blow last round with explosive slingshots, but this round she managed to hit the druid in the back - he was in the line of fire. The druid used his magic staff to smash the demon, and she took more damage but was still standing and fighting. A minor demon has 50 strength points, so it takes quite a bit to kill them. Next round the halfling manages to use her whip (yeah, really should have been a turn to switch weapons but we were playing loosely with the combat rules) and gets it around the demon. Who, while weakened from the continued attacks, is still stronger than the halfling. Marianne, the lapinfolk, helps and pulls and between the two of them they get the demon down on the ground. But she manages to get back up next turn and deals a killing blow to the lizardman Hexis. Deimos, the mage, has failed twice to cast a spell - mere sparks drift from his gestures. But this round he finally manages to bring the bear, who, next turn, leaps on and finally kills Silgith.

Sister Ishbarra at one point darted across to try to lay healing hands on Dawn, the downed Elf. The roll was not good enough, so the elf and lizardman are now dead player characters. This also brought her to 1 strength point left - she was really hurt before and has not had time to heal. There was not enough space to put her in the battle - that room was a bit confined. And the players do not want NPCs to die if it can be avoided - this group does not use them as meatshields!

I will note that killing the demon is note quite right: the demon will respawn in the Pits. But she loses stature, and it will be years before she can come back to this plane of existence.

There is a garrulous voice from above: "The door is open! Who are you and are you okay?" They meet Kegbeard, and bring their companions up with them. There is then a bit of a lore dump. They helped improve the corruption twice now: freeing Stubboon's ghost and sending Silgith back to the Pit has helped a lot. Kegbeard does have the previously mentioned healing baths, so Sister Ishbarra and the others, over the next few days, will soak and get healed back up. This is also a chance for the player who lived to use their XP a bit if they want to. Arachne is now freed, and she can knit more armor. And in fact, I did set up Kegbeard so he can enchant armor and weapons. The players will have a chance to improve their kit here.

Assuming the group wants to keep on playing, we'll bring in replacement PCs. Kegbeard has friends, and they may be heading to Woodfall. Though not for the reasons I was hoping to set up: I gave Silgith the curse spell and was going to do that. But things moved too fast. And we may keep playing or perhaps switch or try something else entirely. I feel that session did not get run well. Part of that is it has been quite a while that we have been playing but there are long gaps between sessions. Keeping invested in characters is hard when you only see them every 4-6 weeks. 

Could the demon have been handled differently? Sure, hindsight being what it is. A couple of the players came up with some good ideas, but we had no way to implement them. I think I should have been a bit more flexible about a few things: holy water came up and Sister Ishabarra is a cleric. But the rules in TFT are different. I should have allowed something like that. But another part of the issue was I was tired and having a hard time tracking my own game, let alone the 2 other games I am playing in. While I'd like to say my job is mentally taxing (well, I suppose it really is - today I had to figure out how to implement JWTs for security. I've used them before but merely from a consumer's view...and I'll hush now). Regardless, my attention span for gaming seems fractured lately. Both running and playing. I felt bad about the Monday night's game: I've not been asking questions and exploring the lore like I feel like I should be doing. I am just showing up (though my character, a mutant flying squirrel, is a lot of fun to play) I think sometimes. I just need to breath a bit and maybe clear my mind. Though I think I will take the GM's map and add a layer for contacts in the next day or so. 

Anyway. Need to also start prepping for a Brass Rings game. So yes - game prep never ends. I've a few weeks I think, and I've two main ideas that I can sort of get a broad outline on. I just need to quit getting distracted by things (which is why GigBee, the flying squirrel, is easy to play - he is constantly distracted. Mostly by food). And life, while mostly really good, is complicated in ways I never expected. Truth to be told I worry about a few personal family things and that has a major impact on everything. 

No update on the Traveller software: I got hung up when adding bases to the systems. A bit of a data update, and while the schema is easy, the UX side of things got complicated as this involved multiple tables. AI is helping, but I also figured I needed to not be on the computer 12 hours a day (and here I am, on the computer again!). But the bases will get added to the systems. I think the next step is the system generator: I'll add that to the planet details so that once you have a planet, there will be a link to generate the rest of the system based on Book 6, Scouts. And maybe the Mongoose book. And maybe the Perilous Void book as well. Think I'll add options...

Yeah, too much to do it seems. And sadly, a post without pictures. Will have to fix that.

Baby Bear thinks about destroying the table

GigBee got an acorn tank! Gift from fellow player in the game. 

Wednesday, May 14, 2025

Traveller System Generator Part 11 and more game prep

I know - maybe too many posts about the code. But as this blog was originally created for my Traveller software (which I think 3 people have used :) ) going with that is okay. Today I added the travel codes: while I've set up the classic Traveller codes, this also allows you to add any kind of travel code you want. Messing with color a bit, and while red and green look okay, the amber is a yellow that just does not show up well. 

Anyway - added the ability to attach a travel code to a planet. Though I think it needs to be at the system level maybe? Or can different planets in the same system have different codes? For example, could a gas giant be okay (Green) but the main planet in the system is Red? I think the classic leans to the whole system has that code. I can always move that later if necessary.

Travel codes

travel code with color!

show the code

bases!
Still need to add the ability to attach bases to a planet (or system! yeah - bases are definitely system-based!)

Anyway, it is a lot of fun doing this. And it is what I am currently doing for work (though it is work so not as fun a domain as Traveller!) 

Game Prep   

And I finally got some stats and a name for the succubus: Silgith. Oneof her spells is curse, and think I can use that on one character, and they will have to find some magic users in Woodfall as I have it, I have swamp terrain I've even painted, and it could be fun. 
Welcome to Woodfall

Painting

Almost done with 2 NPCs (well, 1 NPC and one animated mop) for the next session. And also painting some SF for a potential Space:1999 game. Though it will have to be season 1: I am trying to watch season 2 but it is painful. Budget cuts and some bad story lines makes season 2 an entirely different show than season 1.
Yorfeal Kegbeard and Mop

a cardinal is nesting next to my house - no need to paint!

Halt!

Monday, May 12, 2025

Traveller System Generator Part 10 - Trade Classifications and Checks Are Needed

Got the trade classification tables and service added. And while it seems to be working, I noticed an interesting issue in my world generator: it created a world of size 0 but an atmosphere of 6. Obviously, that is not right. Two ways of fixing it - just hardcode a check for that (and also cap the hydrographics at 1 if the atmosphere is 0) or figure out how to make that a configurable thing. After all - Larry Niven's The Integral Trees was basically an atmosphere around...err, something. I read it a long time ago. But there was no planet. For the moment I'll hardcode those checks and hopefully figure a way to configure additional setting rules. I am a firm believer in the user should be able to do what they want. 



Which is also why I've added TL to the trade classification system: you may want to be able to add trade codes for high-tech or something. And all this will also feed into the to-be-written trade generator. Which years ago, my 1st version of this actually grabbed all systems within the jump range of the ship and gave all the possible cargos. 20+ years ago...yeah, I keep rewriting the wheel so to speak. But the trade rules of course get impacted by the trade classifications. Worry about that later. 

Now, the architecture of the system is SOA - Service Oriented Architecture. With dependency injection, which is a bit confusing until you get your head wrapped around it. It can also make for some pretty complicated initializers. The planet controller, that bit of code that sends you to the correct planet view, needs to be able to access a lot of things. So that controller startup looks like this:


I am basically injecting a bunch of repositories and services that this controller needs. It seems like a lot, but each repository is responsible for 1 table, each service does 1 thing (though the utility service is more of a kitchen sink for things used across the application). While it makes some things a bit more complicated, each piece is like a LEGO piece: it only does one thing mostly. It makes maintenance easier as each piece is a lot smaller and easier to get your head wrapped around. Plus things are a lot more independent, so the code is more resilient as it is what they call "loosely couple". Anyway....a view of what goes into the sausage and probably not interesting to anyone other than, well, me. But I am okay with that!

The trade classification service is pretty simple: it takes in a world UWP (not the actual planet model but a simple UWP string like A123456-8). It goes through and makes sure the various attributes all fit. Code is in the repo here for that service. So, in theory I could write a UWP trade API to get the trade classifications from the UWP....which I think I will do. There should also be some validation on the input - think I have that in the previous software I played with. As it will break the application if the UWP is not correct at least in terms of the number of characters. I then inject that trade classification service into the planet controller so it has access to it, and to have the planet's trade classifications show up, I basically add a variable (a list of trade classifications) to pass along to the view:

 // GET: TPlanets/Details/5

 public async Task<IActionResult> Details(int? id)

 {

     if (id == null)

         return NotFound();

     var tPlanet = await _repo.GetByID(id.Value);

     if (tPlanet == null)

         return NotFound();

     ViewBag.TradeClassifications = await _tradeClassificationService.FindTradeClassifications(tPlanet.UWP);

     if (ViewBag.TradeClassifications == null)

         ViewBag.TradeClassifications = new List<TradeClassification>() { new TradeClassification() { Name = "none" } } ;

     return View(tPlanet);

 }

And then the view just cycles through those (the "tradeClassifications" variable gets set at the top of the view; these are cshtml files, basically HTML with c# added. Stuff with the @ are c# lines of code):

<h5>Trade Classifications</h5>

<div class="row"

    <ul>

        @if (tradeClassifications != null)

          foreach (var t in tradeClassifications)

            {

              <li>@t.Name</li>

            }

    </ul>

</div

Also, most things are asynchronous. While not particularly critical in this small system with a local SQLite DB attached, it is what I am used to. It keeps the main thread from getting bogged down. The awaits just say do this, and while the main thread can handle other requests, when the task we're waiting on is done the code starts back up there. I think it is like javascript's promises and a few other languages that handle background tasking as a "first citizen" sort of thing.

I also realize I want to add notes for the planets. I can either add a note field to the table or add a generic notes table and be able to attach to planets, systems, and subsectors. More stuff to think about. And may add associated trade classification records for a system for things like subsector capital. Not sure about that yet. But as it will impact trade rules, it should probably be yet another table (planet ID and trade classification ID, so planets can have many trade classifications beside those we can calculate. Yeah, writing software requires thinking about a lot of things and how they all link together. A lot like running an RPG!)

And had time tonight as gaming got cancelled - GM was sick :( I really should have poked a bit for the Saturday game coming up and start looking at the Brass Rings for part 2. I'm going to run that game for the Monday night group soon. But this was fun, even after a full day of doing basically doing the same thing at work)

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

Saturday, May 10, 2025

Traveller System Generator Part 9, Gaming Woes, and Crafting Madness

 Got the basic "generate the main world based on Book 3" service completed and it seems to work. Basically, it will create the main world based on book 3. The only thing I do not like is that the service does have the Scout & Navy bases hardcoded in as far as the TL DM, and their chances of being in the system.

Of course, there are a few hundred steps to keep going! I need to decide if I want to generate the rest of the system based on Book 6 & the Mongoose World Builder's book or do the "generate a subsector" and basically, based on system density, see if each hex has a world or not. Or even add in the world explainer stuff on the previous Windows/Android app that never went anywhere. Eventually I'd like to figure out how to draw the maps like the TravellerMap, and since that is open source I think, I can probably get what I need from that to do it. Or cheat like I have in past and create the .sec files and use it's API to draw the maps. But: the core functionality is now in there. I'll probably play some more tonight with it as soon as I decide what I want to add next.


I need to stop spray painting Gatorade bottles. But now I have a scene from Space:1999 (and a partially painted Alphan). Not sure when that RPG will show up, but if we can play face to face I am going to have toys!

inspecting the atomic waste dumps
Today's TFT game was cancelled - too many people could not show up. Last week I was sick. As I've mentioned a few times, adulting is hard! And in some ways, I am kind of relieved: while I am ready to run, I do get a bit of social anxiety even among my friends that I've been playing with for years. But I was ready: even got an apple pie as a running joke in our text messaging from one friend is, when he gets overloaded, "I like pie." Normally, I try to bake something for the group as I like to bake. And it helps break the game afternoon up. I like to be a good host. I even vacuumed the basement. Which is one of the reasons I am glad they show up once a month - it is the only time I get motivated to cleaning the basement!

And a thought about theater of the mind versus maps and scenery. I was going to also make a small house from the Archon stuff assuming they get past the succubus. Complete with the bathtub of healing I mentioned before. Then realized that there was not going to be any fighting in the house (well, unless something else came up) so there was no real need to have the house set up. Just because I do have the toys and want to use them. But I may still build it just because. 

I also got some stats for the demon succubus, along with TFT magic that fits the various traditional views of what these creatures have. And it does fit in with the cult. Which I need to re-read up on as I think I named this demon, and I know I named the cult. But it's been 6+ months....

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

Saturday, May 03, 2025

Traveller System Generator Part 8

Part 7 is buried in the previous post.

I've added a few more things, but the most important part is that I've finally started on the "generate a world" service. This service will follow book 3. Which oddly (and has been argued about forever) you actually roll the starport type before anything else. I'll probably eventually add options to allow you to determine starport based on other criteria but for v1, classic book 3 all the way!

Which introduced a problem or three. The system contents table you use to roll for the port, naval base, scout base and gas giant (and yeah, eventually I'll add a PBG field in when we get to the generate a system service).

To handle the ports, I've added a min and max roll so you can set the range. Now, I've no real checks for a 2-12 die roll check but that can be added easily enough to the model for automatic error checking. But I am thinking way down the road - what if your TU has more starport types, and you want a different range? Leaving that for future development but I always want to make things that users can tweak. The logic currently is just 2d6 so anything outside of that range won't be available. And if there are overlapping ranges it will pick one of those randomly. And of course, you can always change it after the fact. 

our low/high die rages

range is now in the index

first planet generated via the service!

The service seems to work even though it only sets 2 things right now for a new planet: puts in the "New Planet" name and randomly rolls up the starport. 
I've also added a utility service for dice rolls and stuff. Only 1 roll in there but it allows for how many dice and how many sides per die to roll. I probably need to run some tests to see just how well it fairs in generating random rolls but it is good enough for me.

    public int DieRoll(int side, int number)
    {
        int results = 0;
        for (int i = 0; i < number; i++)
        {
            results += _random.Next(1, side + 1);
        }
        return results;
    }

Thursday, May 01, 2025

Yorfeal Kegbeard - Dwarf Magic User

I need to figure out a few things for the next session coming up in a few days. First, I really need to get that demon statted out to see what she can do. I pretty much fluffed over the details last time they encountered her. Assuming they win that fight and survive (I did give them some magical weapons and even armor for the halfling, spidersilk armor from Arachne), they will need some healing and what is next for the game and where to go. They have released Stubboon's ghost, which, while a bit anti-climactic I feel, did a bit to healing the corruption plaguing this area. And as previously mentioned I have these minis I want to use, so will hopefully finish painting.

Knowing what I want to do (and I need to find another mini I know I have - a tub with a rubber ducky in it. It is funny and I plan on using it as a healing bath for the group. Which while TFT really does not have a great deal of healing stuff in there, no reason I cannot make it up. While that can break some of the implicit rules for TFT, they do have wishes and things like that. 

First, then is the tub of healing. This tub itself is not magical nor has any arcane effects. But the water from the underground spring outside the house where Yorfeal lives is a blessed spring from Logton. Which Sister Ishbarra worships and has taken her vow of silence. Soaking in the blessed waters will heal 1d6 strength each soaking. You can do this once per day. I am hoping to let the players catch up, and apply any experience they have if they want while this interlude happens. I've also dropped in Woodfall not too far from here, and that has a lot of potential. I was going to link to the itch.io page but it was having some issues it seems. Plus, I've been painting a bit of swamp scenery and Woodfall is in a swamp. Need to use my toys!

Yorfeal Kegbeard

Raied in far off Goldenshield Mountains, Yorfeal Kegbeard showed an early aptitude for magic. After spending a few years learning all he could while also apprenticing as an armourer at his mother's forge, he wandered Cidri for several years. Eventually discovering the magic school of T'Reo Island, he enrolled to learn more magic. At the T'Reo School of Magic he survived his 3 years. However, while fighting magic was the primary emphasis, there was a vast magical library. In that library he found a grimoire of demons. When rumors of a corruption far to the east in the Terror Lands, he found references to Agrat. It seemed to be her escape from the Pit and feasting on virgin men to build her demon army was enabled by the corruption, and she was helping strengthen that corruption. Taking a gate, he first found himself in Woodfall. But then he wandered further south until he found a crooked house above a dungeon that had a gateway to the Pit. He also found Arachne but could not do anything to help her as she was set in place by Agrat. Only Agrat's death, or more likely, permanent banishment back to the Pit would release the Arachne. Who, it turned out, is both a neat-freak and tends to knit with her own webs. Yorfeal sports a tunic of spider silk, giving him the equivalent of -3 on damage. They have been trying to figure a way to banish this demon when our adventurers show up.

ST: 12    DX: 12    IQ: 17
Spells: Cleansing, Write Scroll. 7-Hex Illusion, Staff I, II, III, IV (25 mana), Pentagram, Weapon/Armor Enchantment, Freeze, Breath Fire, Ward, Dazzle, Magic Fist
Talents: Literacy, Ax/mace, knife, armourer, woodsman, writing, scholar
almost done painting


Agrat

This comes from the Demonology book I backed. As written, way too powerful for this group. But the image matched the mini mostly! I may have to search for a lesser succubi, but this is the part that matched what is happening in the game:
Energy drain: The kiss of or copulation with Agrat causes the loss of 3 experience levels (or HD). This incurs a loss of 3 HD of hp as well as all other benefits due to the drained level. (e.g. spells, saving throws etc.). A character’s BP is reduced to halfway between the former and new levels. A person drained of all levels dies and goes to The Pit, becoming a demon of Agrat’s choosing under her command. These must obey her commands.


For "regular" folk, this kills them. I'll poke around some more and if all else, create a lesser demon that should be challenging. 

Star Wars Tractor Beam Scene   

Realized I could make that now with my Gatgorade thing. I am fortunately easily amused!
and no guard rails here either!


TravSystem Part 7   

Not noted in the title, so sneaking this update 7 in here.

Added a link to create a new planet and at least the routing works: it calls the controller action, which at the moment just creates a new planet in the controller and sets the name (which I also realized I did not have in the model!). Then redirects to a new "EditPlanet" controller that just passes it along to the regular edit controller. It seems to hop a bit because the regular edit action passes in an ID and loads an existing planet from the database. Though I need to think through it a bit more - the edit won't actually save the planet as it does not exist and it assumes you are editing an existing record. The create action assumes no planet...and we cannot save a planet until data is valid. I know there is a good way to handle this! That and a better UI!