Encounter Tables

Thoughts, Help, Feature Requests, Bug Reports, Developing code for...

Moderators: dorpond, trevor, Azhrei

Forum rules
PLEASE don't post images of your entire desktop, attach entire campaign files when only a single file is needed, or generally act in some other anti-social behavior. :)
Post Reply
User avatar
Darcphaze
Cave Troll
Posts: 91
Joined: Sun Aug 10, 2008 9:29 pm
Contact:

Encounter Tables

Post by Darcphaze »

Greetings! My players are near the end of our Pangea campaign, and I'm trying to put together encounter tables for the new one, which is essentially going to be an Underdark campaign. Lets use wererats as an example. Players come across a Wererat Troupe:

I have no problem doing 1d4+1 wererats individually in a table.However, my problem is in group randoms, ie.

1d4+2 wererats AND 1d3+2 dire rats AND 1d2+1 Leader (not for how many but for his level) and a separate WereratLeader table that will figure the class of the leader, but so far I haven't been able to put the troupe together in a click. Far as I can tell tables will not take multiple random commands on one line. I haven't found table code anywhere other than tutorial and macros (where its used differently from actually in a table).

God I hope I'm making sense here.

It had occured to me that I'm just going about this the wrong way. Is there an easier way to get tables to make a group for me?

Thanks a bunch.
No matter what a GM plans for, the players are certain to find another way to do it

train850
Kobold
Posts: 12
Joined: Fri Aug 13, 2010 10:06 pm

Re: Encounter Tables

Post by train850 »

What I would do is look for information on how to trigger a table value from a macro

I got exactly what I needed from the rptool wiki

Code: Select all

[r: table("???")]

I put it in a macro and ran it, just insert the name of the table you want rolled into the questionmarks inside the command box. So you could do something like this

Code: Select all

/self
[r: table("E")]
[r: table("D")]
[r: table("C")]
[r: table("B")]
[r: table("A")]

To instantly roll the grouped encounter from the tables. I hope this helps you

User avatar
Darcphaze
Cave Troll
Posts: 91
Joined: Sun Aug 10, 2008 9:29 pm
Contact:

Re: Encounter Tables

Post by Darcphaze »

train850 wrote:What I would do is look for information on how to trigger a table value from a macro

I got exactly what I needed from the rptool wiki

Code: Select all

[r: table("???")]

I put it in a macro and ran it, just insert the name of the table you want rolled into the questionmarks inside the command box. So you could do something like this

Code: Select all

/self
[r: table("E")]
[r: table("D")]
[r: table("C")]
[r: table("B")]
[r: table("A")]

To instantly roll the grouped encounter from the tables. I hope this helps you
So you're saying I need to make a macro to do it? That a table cannot do it alone? I was looking for a table solution. Each critter is just one line in a table, so you're saying I'm making a table for each one-line critter type in a specific group? Eeee I didn't realize it would be that complicated. I have over 25 group types, each with 3 or 4 different critters in them with soldiers and leaders. Oh my.

Alrighty, then assuming I arrange all these one-liners. I didn't find a code to run a macro from inside a table. In other words, in my Main Encounter table, it would show me 'Wererat Troop' then I would go to the macro and run it? which is cool. Beats doing it all by hand more than once :D

Forgive me, I am macro illiterate. I just started using the tables to create encounters tables for various regions, since they are very good for that sort of thing.
No matter what a GM plans for, the players are certain to find another way to do it

User avatar
CoveredInFish
Demigod
Posts: 3104
Joined: Mon Jun 29, 2009 10:37 am
Location: Germany
Contact:

Re: Encounter Tables

Post by CoveredInFish »

You can do it wih tables alone. But you have to use nested tables .. and these require the use of some macro commands.
I can't explain it out of my head but "nested tables" in the forums search should give plenty of hits.

User avatar
Darcphaze
Cave Troll
Posts: 91
Joined: Sun Aug 10, 2008 9:29 pm
Contact:

Re: Encounter Tables

Post by Darcphaze »

CoveredInFish wrote:You can do it wih tables alone. But you have to use nested tables .. and these require the use of some macro commands.
I can't explain it out of my head but "nested tables" in the forums search should give plenty of hits.
Thanks I shall do some more searching. I did find the code running specific table rows, which I thought might be useful. At least that way, I could have all group critters in one place, just have a macro run it one row at a time.

I shall have to search for 'nested tables' later today.
No matter what a GM plans for, the players are certain to find another way to do it

train850
Kobold
Posts: 12
Joined: Fri Aug 13, 2010 10:06 pm

Re: Encounter Tables

Post by train850 »

What he said, I thought you were trying to roll multiple encounters off of tables with a single click. Of course this topic gave me the opportunity to try out some neater macros though

User avatar
CoveredInFish
Demigod
Posts: 3104
Joined: Mon Jun 29, 2009 10:37 am
Location: Germany
Contact:

Re: Encounter Tables

Post by CoveredInFish »

I did just a quick search - and if i didnt miss something completely - it should be way easier to do the nesting completly in macro. Actually nesting tables within tables alone seems pretty complicated. :(

It would be easy to create a macro that takes a formatted string (from a table) like "2*A, 1*B, 3*C" and translates that into "roll 2 times table A, once on tbl B and 3 times tbl C" .. and then actually do this.

I could help you with such a macro. You'd have to create your tables in a way that we can parse like this (how that would be exactly depends mostly on content - like can a table result include comma etc).

Using this would just be clicking a macro. We would have to establish a way how to choose which base table (the one with 2*A, 1*B" etc in it) should be used (each its own macro button, drop down list, etc).

train850
Kobold
Posts: 12
Joined: Fri Aug 13, 2010 10:06 pm

Re: Encounter Tables

Post by train850 »

I didnt want to get all crazy with the tables yet until I got some things under the table so to speak. This topic pretty much discussed what I needed to look at in the short future, thanks.

User avatar
Darcphaze
Cave Troll
Posts: 91
Joined: Sun Aug 10, 2008 9:29 pm
Contact:

Re: Encounter Tables

Post by Darcphaze »

CoveredInFish wrote:It would be easy to create a macro that takes a formatted string (from a table) like "2*A, 1*B, 3*C" and translates that into "roll 2 times table A, once on tbl B and 3 times tbl C" .. and then actually do this.
I'm very confused now. As I stated above, I already have specific groups, planned out using wererat group as an example, which includes the wererats, some dire rats and a leader. That's it. I have larger groups planned, as example, Wererat slavers, that have wererats, dire rats, leader, cleric or wizard, soldiers, slaves, wagons and animals.

At this point I assume a macro will roll them all together, assuming I can get them lined up. Since I already have random rolls defined in the table, then I only need the macro to look at rows, similar to the code I found in the wiki that says

Code: Select all

[r: table("tbl1", 1)]
So if I put all the Wererat troup in one table, which would read thusly:

Code: Select all

 Row 1 - /r 1d4+2 wererats 
Row 2 - /r 1d3+2 dire rats 
Row 3 - /r 1d2+1 Leader (which actually gives level of leader)
Row 4 - /tbl WereratLeader 
(table rolls for class)

Then the macro would go:

Code: Select all

[r: table("tbl1", 1)]
[r: table("tbl1", 2)]
[r: table("tbl1", 3)]
[r: table("WereratLeader")]
and Row 4 would not be necessary in the encounter table since the macro can grab it as a separate table? My brain hurts, as this does not work. It does select the correct row and even shows me what the roll is, but doesn't actually roll it.

I know I'll get it eventually if I play with it long enough.
No matter what a GM plans for, the players are certain to find another way to do it

User avatar
CoveredInFish
Demigod
Posts: 3104
Joined: Mon Jun 29, 2009 10:37 am
Location: Germany
Contact:

Re: Encounter Tables

Post by CoveredInFish »

Sorry, didnt meant to confuse you. I was already thinking of some general solution and how "any similar" problem like yours could be solved by it. This usually makes things more confusing...

If you want the dicerolls in the table to be evaluated (aka actually rolled) Wiki: eval() will be handy.

I think you'll have to drop the /r bits as slash commands are chat commands and work only in macro if they are very first signs there. I'd built the macro part a little bit more flexible (so you can use it again and again with only minor modifications) and it would look like this...

Table

Code: Select all

Row 1 - 1d4+2 wererats
Row 2 - 1d3+2 dire rats
Row 3 - 1d2+1 Leader (which actually gives level of leader)
Row 4 - tbl("WereratLeader")
Macro

Code: Select all

[h: tableName = "tbl1"]
[h: nrOfLines = 4]
[r, count(nrOfLines): 
    eval(  table(tableName, roll.count+1)  )
]
 
the count-loop does the same thing you had written out.
it counts from 0 up to 3 (actually to x with x<nrOfLines) .
the important part is the eval() that treats the strings of text
received from the tables like macro code

User avatar
Darcphaze
Cave Troll
Posts: 91
Joined: Sun Aug 10, 2008 9:29 pm
Contact:

Re: Encounter Tables

Post by Darcphaze »

CoveredInFish wrote: Table

Code: Select all

Row 1 - 1d4+2 wererats
Row 2 - 1d3+2 dire rats
Row 3 - 1d2+1 Leader (which actually gives level of leader)
Row 4 - tbl("WereratLeader")
Macro

Code: Select all

[h: tableName = "tbl1"]
[h: nrOfLines = 4]
[r, count(nrOfLines): 
    eval(  table(tableName, roll.count+1)  )
]
 
the count-loop does the same thing you had written out.
it counts from 0 up to 3 (actually to x with x<nrOfLines) .
the important part is the eval() that treats the strings of text
received from the tables like macro code
Ok I messed with my base stuff some more and got the macro to work.
Problem now is that it's rolling but it's not telling me what. I get something that looks like this:

2, 3, 3, 1d2+1 fighter level

I assume since the 4th line is the WereratLeader table (this table uses d100 to find a class and already had a roll for level in it) that this is why we see 1d2+1 fighter level. It's picking the class but not rolling the level. The others are rolling but not printing what. I'm not sure how to make the WereratLeader work. The number of levels change with the class, so it makes Row 3 sort of obsolete.

I think I'll take what I have here and make a go of it. If I have to roll up leaders separately, I'd have to anyway for the encounter. Thank you so much for all your help.
No matter what a GM plans for, the players are certain to find another way to do it

User avatar
CoveredInFish
Demigod
Posts: 3104
Joined: Mon Jun 29, 2009 10:37 am
Location: Germany
Contact:

Re: Encounter Tables

Post by CoveredInFish »

Ah .. i checked and its eval's fault. If you feed 1d4 wererats into eval its rolling the die and losing the additional text.
You can make it work if you change the tables like this: 1d4 + " wererats". Eval now rolls the dice and adds the text in the quotes, so you get what you want.

And if you go deeper than nesting 2 tables you'll have to include further eval() calls. I think you can write eval(tbl('wereratLeader')) in your table and it would work. Not sure though..

User avatar
Darcphaze
Cave Troll
Posts: 91
Joined: Sun Aug 10, 2008 9:29 pm
Contact:

Re: Encounter Tables

Post by Darcphaze »

CoveredInFish wrote:Ah .. i checked and its eval's fault. If you feed 1d4 wererats into eval its rolling the die and losing the additional text.
You can make it work if you change the tables like this: 1d4 + " wererats". Eval now rolls the dice and adds the text in the quotes, so you get what you want.

And if you go deeper than nesting 2 tables you'll have to include further eval() calls. I think you can write eval(tbl('wereratLeader')) in your table and it would work. Not sure though..
Thanks a bunch for your help. This is want I wanted :D
No matter what a GM plans for, the players are certain to find another way to do it

Post Reply

Return to “MapTool”