Subsector from a Map

I have been asked how I made the maps of Lancaster and Chambersburg Subsectors. In this post I will describe how I did it.

(I have also done the same for Ireland. I work on a version of Denmark and south Sweden.)

First I find the area I want to map on Google Maps (or any other map). I zoom to the level I like. 10-20 towns (or places) in the area is about right. Make a screenshot of this.

I use a transparent subsector map that I have made using quickhex.


I use a good image editor that can handle layers. (I use GIMP, which is free.) Then I open my screenshot and place the transparent map on top of it as a layer. (I can move it a bit until I am happy where the towns are in the subsector.) This is what it could look like.
Now I know where all my main planets will go in the subsector.

Now open a good text editor. (I use Notepad++) I write down the name and hex of the main planets like this (for Chambersburg Subsector).

Thurmont        0517
Frederick       0519

These planets are in subsector E. I determine the offsets for the hex-numbers based on what subsector in the sector I want it to be.

When I have written all of my main planets like this, I zoom in on the map (at google) to find some additional backwater planets to add to the subsector. 20-35 worlds in a subsector works fine.

Then I will have something like this:

McConnellsburg  0115
Union Rock      0211
Shade Gap       0212
Burnt Bases     0213
Martinsburg     0218
Hager's World   0317
Charles' Planet 0320
Chambersburg    0414
Waynesboro      0416
Newburg         0513
Thurmont        0517
Frederick       0519
Newville        0612
Emmitsburg      0616
Carlisle        0713
Gettysburg      0716
Airy Rock       0719
Duncannon       0811
New Oxford      0815
Westminster     0817

Next step is to fill up the planets with dummy data.

This is something I do since I think it makes editing easier, and allows me to use the post function at Traveller Map before I am finished. It will give me an early view of what I am building. (With a good text-editor like Notetab++, it is possible to copy and paste columns of data.)

McConnellsburg  0115  E200200-7  S Ni              A 123 Pa
Union Rock      0211  E200200-7  S Ni              A 123 Pa
Shade Gap       0212  E200200-7  S Ni              A 123 Pa
Burnt Bases     0213  E200200-7  S Ni              A 123 Pa
Martinsburg     0218  E200200-7  S Ni              A 123 Pa
Hager's World   0317  E200200-7  S Ni              A 123 Pa
Charles' Planet 0320  E200200-7  S Ni              A 123 Pa
Chambersburg    0414  E200200-7  S Ni              A 123 Pa
Waynesboro      0416  E200200-7  S Ni              A 123 Pa
Newburg         0513  E200200-7  S Ni              A 123 Pa
Thurmont        0517  E200200-7  S Ni              A 123 Pa
Frederick       0519  E200200-7  S Ni              A 123 Pa
Newville        0612  E200200-7  S Ni              A 123 Pa
Emmitsburg      0616  E200200-7  S Ni              A 123 Pa
Carlisle        0713  E200200-7  S Ni              A 123 Pa
Gettysburg      0716  E200200-7  S Ni              A 123 Pa
Airy Rock       0719  E200200-7  S Ni              A 123 Pa
Duncannon       0811  E200200-7  S Ni              A 123 Pa
New Oxford      0815  E200200-7  S Ni              A 123 Pa
Westminster     0817  E200200-7  S Ni              A 123 Pa

All worlds get the same UWP and a scout-base and an Amber Zone. I do this to make it easy to see that I have typed in everything correctly and make it easy to see any changes.

Then I use the post function at Traveller Map.

I copy and past my data into Sector Data. Then, select the correct Subsector. Click preview. It may look like this.

I know what everything in the UWP stands for, but I know that some Traveller players don’t. A description of the UWP can be found here or here or in the rules (e.g. CT Book-3).

First I usually edit the Size, Atmosphere, and Hydrographics numbers.

If I know something about a place then I can use that information.
If I don’t I usually click on the name on the place on Google Maps or look it up at Wikipedia and look at the images.

Is it a wet or dry place? Does it look polluted? I want to get a feel for the place. This is a very subjective process.

I think McConnellsburg look a bit average.
Mt Union (that I renamed to Union Rock) looks dry.

McConnellsburg  0115  E544200-7  S Ni              A 123 Pa
Union Rock      0211  E100200-7  S Ni              A 123 Pa

Repeat for all worlds. Remember the rules. A value cannot change more than plus/minus 5 from the previous value (for the first three after Starport). The most common result is that it doesn’t change, the next common result is that it just changes by 1 point etc. (Except if planet size is 0, then atm must be 0, and if atm is 0,1 or A+, then hydro will have a DM of -4.)

Don’t worry about getting it correct now. We will use a tool later that will help us correcting our errors.

Next we look at population, government and law-level.

For population the numbers from the traveller rules cannot be used. Then the population will be too small and there will never be any pop 8+ worlds.

I have used this table instead. (Just like the Traveller rules for population, this table is logarithmic.) I look up the population of the place, village town or city by clicking on it in Google Maps or looking it up in Wikipedia.

real population       pop number
<500                     0
500  - 1k                1
1k   - 2k                2
2k   - 5k                3
5k   - 10k               4
10k  - 20k               5
20k  - 50k               6
50k  - 100k              7
100k - 200k              8
200k - 500k              9
>500k                    A

Just like the atmosphere and hydrographics value, the following values (government and law-lavel) should not change more than 5 from the previous. The same value again or just a small change should be most common.

Note that some government codes will have a special meaning that may be problematic. Then use another value.

The two that I find to be most problematic are:
Gov code 6 means that it is a colony and owned by another planet.
Gov code 7, means that the planet is balkanized.

Then pick a law level. Now the worlds should look something like this:

McConnellsburg  0115  E544223-7  S Ni              A 123 Pa
Union Rock      0211  E100344-7  S Ni              A 123 Pa

Tech-level and starport are also quite subjective.

I look at the images of the town. What do I know about the town. Does it look hi-tech (Modern houses, new cars) or does it look low-tech (Old houses, tractors, horses).

Is the town on an important road? Then the world is probably on the same important space-route. That will also increase the tech-level.

Is there a maximum tech-level. Reserve that for the best high population worlds.

If the population is 0, then tech-level is 0.

A good starport may indicate that the world is important. If it is on a route, it should have a better starport so that it at least can sell refined fuel. (starport C).

If the population is 0, then starport is usually X.

Also note that according to the rules some things affect the tech-level. A good starport, high population and un-breathable atmospheres means a higher tech-level. With a religious dictatorship the tech-level is lower.

Set a tech-level. Don’t worry if it is not correct according to the rules. We will correct it later.

Now, the six first world of Chambersburg subsector looks like this:

McConnellsburg  0115  E544223-3  S Ni              A 123 Pa
Union Rock      0211  E100344-5  S Ni              A 123 Pa
Shade Gap       0212  X89A000-0  S Ni              A 123 Pa
Burnt Bases     0213  X200000-0  S Ni              A 123 Pa
Martinsburg     0218  C433547-6  S Ni              A 123 Pa
Hager's World   0317  C766689-8  S Ni              A 123 Pa

Look in the rules for the rules for bases. Put Naval Base only on A and B starport worlds. No Scout Base on E and X starport worlds. (Most likely on D least likely on A.)

Put bases where they are  needed, but try to follow the rules.

Example form Chambersburg Subsector:

Hager's World   0317  C766689-8  S Ni              A 123 Pa
Charles' Planet 0320  D665455-5    Ni              A 123 Pa
Chambersburg    0414  B767687-A  N Ni              A 123 Pa

Zones, where to add them? The rules are unclear about this. I like to add some zones in a sub-sector since it makes it more colourful. (Somehow, it also inspires me to write adventures.)

I put automatic Red Zones on all starport X and population 0 worlds. Does another world need a Red Zone? Have I read (in Wikipedia or in the news) anything bad about that Town? Do I need a Red Zone for my adventure? (A secret, or a plague, or a war.)

I put Amber Zones on some worlds that need that for various reasons. In Lancaster Subsector I have three.

Two of these worlds was in scenarios in Season-1 of the adventures of starship Notorious. Hampstead is Amber Zoned since it has a bug that shouldn’t be to spread to other planets. Intercourse is low tech world rules by a religious cult.

In Season-2, the crew will visit Intercourse again, but will also visit the third Amber Zone in the Subsector. Hershay is balkanized and there are small-scale conflicts (over chocolate.)

Example from Chambersburg Subsector:

Shade Gap       0212  X89A000-0    Ni              R 123 Pa
Burnt Bases     0213  X200000-0    Ni              R 123 Pa
Martinsburg     0218  C433547-6    Ni                123 Pa
Hager's World   0317  C766689-8  S Ni                123 Pa
Charles' Planet 0320  D665455-5    Ni                123 Pa
Chambersburg    0414  B767687-A  N Ni                123 Pa
Waynesboro      0416  D344521-3    Ni              A 123 Pa

A final touch before using the post tool again is to add the Trade Code “Cp” to the Capital. (It will make the name of the world red.)

Chambersburg    0414  B767687-A  N Ni Cp             123 Pa

Now use the post tool (using Scale 64) to see what the subsector looks like.
Prototype Subsector

The PBG code at the end of the line represent a Population modifier, number of Belts, and number of Gas-giants.

The population modifier is a number that the base population should be multiplied with. Random numbers could be used, but that will break Benford’s Law. Using logarithmic random number would be better. But the best thing would be to use the real population numbers of the town and apply them logarithmically.

Confused? Lets say that the population is between 10k and 20k. We have already assigned this as a pop-5 world.

If the population is right in the middle (here ~15k), then the modifier should be 3. If the population is one-third from the lower value (here ~13k), then the modifier should be 2. If the population is one-third from the higher value (here ~17k), then the modifier should be 5. Then extrapolate, or do the maths.

The only exception, a population of 0 should have a modifier of 0.

For belts there are a number of rules. Some are very time-consuming. Adding 1-3 belts is fine. Is more or less needed for my adventure? Then, I use that number.

For gas-giants, the rules say that 1/6 of the systems should not have a gas-giant. To make the subsector interesting, try to figure out where there should not be any gas-giants. Where it should be expensive to refuel, etc. For the other worlds 1-4 gas-giants is fine.

For allegiance code. Use two (or four) letters that represent the political entity that the world belongs to.

Try the poster at Traveller Maps again. Now try using size 128.

Chambersburg Noborder

Next thing to do is correcting codes and TL and other things that may be wrong according to the rules.

We now have a number of worlds that we know have the wrong trade code and maybe other errors as well.

Burnt Bases     0213  X200000-0    Va Ba           R 030 Pa
Martinsburg     0218  C433547-6    Ni Po             802 Sv
Hager's World   0317  C766689-8  S Ga Ri Ni Ag       722 Md
Charles' Planet 0320  D665455-5    Ni Ga Pa          102 Sv
Chambersburg    0414  B767687-A  N Cp Ni Ag Ga Ri    112 Pa
Waynesboro      0416  D344521-3    Ni Ag           A 120 Pa

Now go to the Traveller Map Sector Data Checker.

To avoid confusion with too many errors, copy and paste one line at a time into the lint tool. Un-select, “Hide TL Errors”. Then click “Check”.

For Shade Gap I get an error like this:

Hint: Parsing as: SEC (Legacy)
Warning: Missing code: Wa, line 1: Shade Gap       0212 X89A000-0    Ni              R 012 Pa
Warning: Missing code: Ba, line 1: Shade Gap       0212 X89A000-0    Ni              R 012 Pa
Warning: Extraneous code: Ni, line 1: Shade Gap 0212  X89A000-0    Ni              R 012 Pa
0 errors, 3 warnings.

I correct by adding Wa and Ba and removing Ni.

I check again and get no errors found.

I repeat the procedure with every line until the subsector is error free.

Now we have an error-free subsector that looks good in the poster-tool, except that there are no routes or borders.

At the poster page, there is a field for Meta Data. That is what we will create now.

First we use the border maker.

Add the subsector and click calculate borders. (Try claim edges.) Click on the map to add additional hexes. Copy and save the metadata.

It could look something like this:

<?xml version="1.0" encoding="utf-8" ?>
<Sector>
  <Borders>
    <Border Allegiance="Md">0119 0218 0217 0317 0417 0517 0616 0717 0817 0718 0719 0618 0519 0419 0320 0319 0218 0119 </Border>
    <Border Allegiance="Pa">0014 0115 0214 0213 0212 0211 0312 0412 0513 0612 0712 0811 0812 0813 0814 0815 0716 0615 0516 0416 0316 0216 0215 0115 0015 0014 </Border>
  </Borders>
</Sector> 

Now use the Route Maker.

Add the subsector. Click on the map to add some routes. Save the metadata, It could look something like this:

<?xml version="1.0" encoding="utf-8" ?>
<Sector>
  <Routes>
    <Route Start="0213" End="0513"/>
    <Route Start="0713" End="0513"/>
    <Route Start="0713" End="0716"/>
  </Routes>
</Sector>

Now the metadata from routes and borders should be merged. Cut out the Borders section from the borders meta and paste that into the routes meta before the routes section. It will look something like this:

<?xml version="1.0" encoding="utf-8" ?>
<Sector>
  <Borders>
    <Border Allegiance="Md">0119 0218 0217 0317 0417 0517 0616 0717 0817 0718 0719 0618 0519 0419 0320 0319 0218 0119 </Border>
    <Border Allegiance="Pa">0014 0115 0214 0213 0212 0211 0312 0412 0513 0612 0712 0811 0812 0813 0814 0815 0716 0615 0516 0416 0316 0216 0215 0115 0015 0014 </Border>
  </Borders>
  <Routes>
    <Route Start="0213" End="0513"/>
    <Route Start="0713" End="0513"/>
    <Route Start="0713" End="0716"/>
  </Routes>
</Sector>   

Now try this in the poster function again and using the metadata. Does it look fine (except that borders and routes are gray)? If not, (it is easy to mess up borders) then redo the previous two steps.

The only thing that is left now is to assign colors to borders and routes.

Add a style sheet section before the borders section of the meta. In the style sheet section, specify the RGB colors for borders and routes. The final metadata will look something like this:

<?xml version="1.0" encoding="utf-8" ?>
<Sector>
  <Stylesheet>
    border.Pa { color: #000099; }
    route.Pa{ color: #00CC00; }
    border.Md{ color: #990000; }
    route.Md{ color: #00CC00; }
  </Stylesheet>
  <Borders>
    <Border Allegiance="Md">0017 0117 0217 0317 0417 0517 0616 0717 0817 0917 0918 0919 0920 0921 0821 0721 0621 0521 0421 0321 0221 0121 0021 0020 0019 0018 0017 </Border>
    <Border Allegiance="Pa">0008 0109 0208 0309 0408 0508 0608 0709 0808 0909 0910 0911 0912 0913 0914 0915 0916 0816 0716 0615 0516 0416 0316 0216 0116 0016 0015 0014 0013 0012 0011 0010 0009 0008 </Border>
  </Borders>
    <Routes>
    <Route Start="0912" End="0713"/>
    <Route Start="0414" End="0713"/>
    <Route Start="0414" End="0317"/>
    <Route Start="0218" End="0317"/>
    <Route Start="0519" End="0317"/>
    <Route Start="0519" End="0621"/>
    <Route Start="0218" End="0020"/>
  </Routes>
</Sector>

Now we have a pretty map that could look like this:

Using some image editing (I use GIMP) I can make it look like this:
Chambersburg Subsector

One thought on “Subsector from a Map”

Leave your reply