Does anyone have an ACKS bestiary spreadsheet to help with utility development?

No biggie - I’m not the one doing the heavy lifting on this :slight_smile:

I’ve been playing around with it - how tough would it be to match & output escape characters? A few well placed linefeeds or tabs in the encounter listings would go a long way towards cleaning up the wall-o-text gotten from humanoid lairs, for example, without having to do a lot of code-rearch immediately.

Like this high roll on a Bandit Camp:

Bandit
Bandit Camp of Bandit Band of 41 bandits armed with short swords, short bows, leather armor, and shield, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 37 bandits armed with short swords, short bows, leather armor, and shield, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 21 bandits armed with long swords, chainmail, shields, and light warhorses, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 18 bandits armed with long swords, chainmail, shields, and light warhorses, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 20 bandits armed with long swords, chainmail, shields, and light warhorses, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 16 bandits armed with short swords, short bows, leather armor, and shield, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 25 bandits armed with long swords, chainmail, shields, and light warhorses, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 18 bandits armed with short swords, short bows, leather armor, and shield, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 26 bandits armed with short swords, short bows, leather armor, and shield, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 40 bandits armed with short swords, short bows, leather armor, and shield, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 18 bandits armed with short swords, short bows, leather armor, and shield, plus 2xF2 and 1xF4 mounted in plate, Bandit Band of 7 bandits armed with long swords, chainmail, shields, and light warhorses, plus 2xF2 and 1xF4 mounted in plate. Ruled by bandit captain 9th level fighter,plus 1 5th level fighter for every 2 warbands, MU L9.

which could be very usable as-is (I’d take each line-grouping of bandits and have that many encounter the PCs as they move about, or similar - say the group of 41 meets them at the barbican, the group of 7 are left at the prison, etc, etc.) if each Bandit Band was on it’s own line and maybe tabbed in one.

The more I think about it the more I like the random breakout, even though I miss a built-in total. Lets me fill areas of obstacles without having to see if I’ve used too many or too few.

Yeah, escape characters would be an easy first step. The trouble there is that if you want to sometimes generate bandit camps and sometimes just bandit bands, both using the same bandit band entry, if you prefix each band with a tab for camp purposes, then you also get gratuitous leading whitespace when you just want an encounter. So you’d either have to split them, or make the general-case recursive tabling smarter.

I totally agree that having lairs split out into bands is useful for stocking areas, though. Good fodder for political differences within the enemy that PCs might exploit to their benefit.

Also - where’s the treasure!? I think I may have a bug.

Heh - didn’t even notice - you are correct, there was no treasure there. I got two Lizardman villages and a Berserker and a Orc village in that same roll and those had treasure…

Looks like there’s just not a treasure entry under BrigandEnc or BanditEnc?

Yeah, just forgot to put treasure in their entries. Fixed.

Any chance you could post your monster data file? I’m working on a set of ACKS monster cards and spell cards.

I’m actually currently working on something similar, which apparently I started at about the same time.

Mine’s in C# though; it’s less portable, but it is much more similar to C++, which is the language I’m most proficient in.

I currently have three tabs; one for generating random dungeons, one for rolling treasure in a vacuum, and one for generating wilderness encounters. I only have a few more monsters to add support for encounters with (dragons, hydras, remorhazes off the top of my head, probably a few others), then I plan to add a fourth tab to generate specific encounters (that is, you can pick ‘roll me up a hobgoblin camp’ instead of a random wilderness encounter).

Once I have that up (probably another week or two, but since I do this in spare time it’s hard to predict exactly), unless I find any major bugs or get embaressed about any more chunks of code (my humanoid generation is terrible; I really need to genericize the warband/band distinction, I currently just have them all hardcoded in), I’ll probably consider it complete enough to post a version here.

I made an up-to-date monsters spreadsheet. I put the dragon stuff on other sheets, since their stats work differently than most monsters.
http://farmcodegary.com/acks/monsters.ods
http://farmcodegary.com/acks/monsters.xls

That is awesome! Wow, we’ve got some fabulous resources here!

For my part, the ACKS region map script is pretty much done! New features:
*set up painting terrain feature that writes terrain types to a dictionary
*integrated terrain types into the encounter script, so now you get the right encounter tables based on terrain. This also modifies the encounter range values.
*fixed encounter generation errors from database and tidied up encounter text
*set up encounter script for NPC parties (only based off party level, as I haven’t yet incorporated dungeons to the scripts. This randomly generates a full party of characters with class, level, combat stats, attributes, weapons and armour (non-magical only).
*coded Market Class into the location data and set up UI so that if you tap on a location, you’ll get a circle representing the range of trade routes from that location.
*set up a day/night cycle on the map based on time of day, weather conditions and moon phase to provide ‘at-a-glance’ perception range info to the GM. This algorithm is also tied to the encounter distances, so that if you have an encounter in the middle of the night in a storm, the encounters will be much closer.
*tidied up various pieces of code and tightened up innumerable little errors in the dictionaries.

Known errors:

  • HP for small creatures isn’t generating randomly. I set it up so that it just assigned a median value rather than trying to code HP for non d8 critters. All Giant Bees have 2hp.
  • All ‘class’ based encounters, i.e., Fighters, Clerics, Thieves are set at level 3 creatures. Eventually, I’ll have this tied to party_level.

That’s it! I’ll post an updated pic on G+. If anyone has an iPad with Pythonista installed, let me know and I’ll provide the scripts and images in a .zip file. A great deal of the code should be reusable in any Python editor, though and I don’t think it would be hard to port over to pygame.

Cheers,

Cgeist7