PDA

View Full Version : 7th Sea / Roll & Keep?



Findanniin
January 31st, 2015, 04:44
Hi guys.

I'm contemplating running a campaign in FG - but I was wondering how FG deals with the R&K system of 7th Sea (or Legend of the 5 Rings).
Meaning: Roll x D10, keep the x highest and add these together. 10's "explode" and are rolled again.
Could this be programmed in?

I don't mind doing the number interpreting the old fashioned way.

Secondly - Initiative "phases" from the R&K system - could these be placed on the combat tracker roughly automatically?
Basically, a combat round has 10 phases - players get to act a number of times equal to their initiative attribute at different phase numbers.
Players can also give up actions to interrupt earlier in the phase.

Is that something that can be programmed in?

Thanks in advance.

damned
January 31st, 2015, 06:12
I *think* that Blackfoots Champions game has some of those features.
yes they can be programmed in.
no its not a trivial task.

I believe that FG 4 will have better dice mechanics but that is not based on any official announcement just on other bits and pieces written here.
The initiative phases would still require programming and I believe it was challenging for Blackfoot...

Findanniin
January 31st, 2015, 06:41
Thanks Damned, quick on the draw :).

I ... have no idea who Blackfoot is, but can I simply "steal" his code (with his permission, of course)?
I'm not a programmer - nor do I wish to be; but I'm sure I can figure it out if nudged in the right direction.

Will FG4 be a free update, or would I have to re-purchase a license if I wanted a better diceroller?

damned
January 31st, 2015, 07:06
1. have a look around the boards and you will find Blackfoot.
he may or may not be willing to share the code - hes put hundreds of hours into it...

2. if you are not a programmer... id probably stay away from this project. im not a programmer and im hacking my way thru a much simpler ruleset conversion but its a lot of work - especially when you dont code well. the combat tracker phases will not be trivial... and ruleset coding is not something that good documentation exists for but there are lots of good examples and the existing ruleset codes can be viewed for inspiration.

3. Up till now SmiteWorks have always given free upgrades but there is a good possibility that FG4 might require an upgrade fee. Its a huge port and free upgrades forever is probably not a sustainable model long term.


https://www.fg-con.com/wp-content/uploads/2015/01/fg-con-6-150-8.jpg (https://www.fg-con.com/events/)
FG Con 6 – April 17-19th 2015 - register at www.fg-con.com (https://www.fg-con.com/) for all the latest info.

Findanniin
January 31st, 2015, 08:01
Alright, sent Blackfoot a pm. Thanks for referring :).

That said - a bit disappointingly inflexible that a 40€ virtual tabletop doesn't innately support exploding dice mechanics, which free play by forum scripts do.
I know that's a bit of a "mean" complaint, but I've recently bought this program - and will not be paying an upgrade fee for something which I feel my initial purchase entitles me to.

Anyway, that's derailing what I'm hoping to achieve here.
Mind you, I'm not averse to paying for a 7th Sea / R&K supplement, even if that probably won't happen at this point.

Blackfoot
January 31st, 2015, 08:28
Champions/HERO does use a phase based initiative system. It took me quite a bit to get it working but in the end it relies on a lot of the basic functions of the CoreRPG combat tracker. I would agree with damned that building a ruleset is a lot of work. A simple character sheet isn't too bad.. but that'd be the place to start... the combat tracker is a lot more complicated.

damned
January 31st, 2015, 08:30
vote for the dice mechanics here - https://fg2app.idea.informer.com/
they may or may not appear on FG3 - you are not alone in wanting this feature

there is no official word on FG4 - either timing or pricing - just small bits posted around the forums. it might be soon it might not even be this year.
in the meantime FG3 continues to be developed and improved - 3.0.10 came out in January - the 10th upgrade to FG3 in about 2 years.

there are some rulesets being developed all the time but they take a while.
champions, shadowrun4, maelstrom, paranoia are some Im aware of.


https://www.fg-con.com/wp-content/uploads/2015/01/fg-con-6-150-10.jpg (https://www.fg-con.com/events/)
FG Con 6 – April 17-19th 2015 - register at www.fg-con.com (https://www.fg-con.com/) for all the latest info.

Ikael
January 31st, 2015, 12:02
Alright, sent Blackfoot a pm. Thanks for referring :).

That said - a bit disappointingly inflexible that a 40€ virtual tabletop doesn't innately support exploding dice mechanics, which free play by forum scripts do.
I know that's a bit of a "mean" complaint, but I've recently bought this program - and will not be paying an upgrade fee for something which I feel my initial purchase entitles me to.

Anyway, that's derailing what I'm hoping to achieve here.
Mind you, I'm not averse to paying for a 7th Sea / R&K supplement, even if that probably won't happen at this point.

FG4 is going to support different dice mechanics out of the box via new dice API (macro system). Currently different dice mechanics are implemented into rulesets which need them. There are several reasons why it is done this way (in dev sense). Different dice mechanics could be implemented different ways, for instance you mentioned free forum scripts, in those cases all can be code within scripts even the dice random results, but in FG you don't want that. You want virtual dices being tossed around to give you random results from dices, and implementing it is not that trivial as "within script" approach. Like mentioned FG is gradually getting improved to ease the implementations.

Anyways the best thing about FG is its community. I could do small extension which implemented R&K. It would be generic one just to showcase power of FG :) Gimme couple days or so and I can try to find free time to do it.

Findanniin
January 31st, 2015, 14:14
Anyways the best thing about FG is its community.

True enough - I'm finding the forums and the people incredibly helpful, even if so far I'm finding the "out of the box" program rather restrictive.


I could do small extension which implemented R&K. It would be generic one just to showcase power of FG Gimme couple days or so and I can try to find free time to do it.

That... would very much prove your point number one.
Get me a working dice-result calculator thingy and initiative tracker, and I'll run a 7th Sea for the first 5 interested people :).

Ikael
February 1st, 2015, 14:44
Here is very quick and dirty extension which adds support for exploding dices and Roll-and-keep. However this only adds slashcommand support for those, integrating those into char sheets is another parts (but easier one imo).

You can use new slashcommand:

/rnk [pattern] [description]

for example: /rnk 5K3 Attack
this will roll 5 d10's and keep 3 highest scores. Dices can explode if highest number is rolled.

Alternatively you can use another slashcommand:

/edie [pattern] [description] to roll any dice combination and each die will explode if it scores highest number.

It might be buggy since I didn't spend much time to debug it, but if you find issues, please report them and I will patch them up.

Findanniin
February 1st, 2015, 19:33
That's amazing already.
Thank you ever so much :).

I'm guessing a working initiative tracker would be a lot harder to code?
Because the only work around in the product I see right now is either making multiple instances of the characters and having them make multiple initiative rolls, and then lots of manual removing for interrupts -
Or tracking initiative on a note and sharing that and... editing it where the players can see?

normally, in P&P, on the tabletop, players simply roll a few non-exploding D10's (equal to their initiative attribute) and then leave these in front of them, with the number on the D10 showing the phase number(s) in which they get to act.
Quick and easy, but I have no idea how to do this, even without automation) in FG.

damned
February 1st, 2015, 20:39
In Core RPG Improved Character Sheet create an Ability Called Initiative. Set up the appropriate number of d10s and let the players roll at the start of the round. In the Chat Window you will have a record from the start of the round that says Finadamin: Initiative 5 9 1 set everyones init in the CT manually.


https://www.fg-con.com/wp-content/uploads/2015/01/fg-con-6-150-8.jpg (https://www.fg-con.com/events/)
FG Con 6 – April 17-19th 2015 - register at www.fg-con.com (https://www.fg-con.com/) for all the latest info.

damned
February 1st, 2015, 20:40
And well done Ikael.

Findanniin
February 2nd, 2015, 15:12
Cheers Damned.

This won't work for me though. Well, technically, it will - but ... hold on, hear me out:

Suppose I have 5 players. (likely)
Suppose all 5 of them have initiative 3 (likely)
Suppose they'll be fighting 3 groups of enemies (likely).

Will I be manually adding over 20 results to the combat tracker every round?
Because initiative shifts in between rounds, it won't stay the same.

Also, initiative shifts openly. players can give up 2 dice for interrupts, hold their actions and phase their numbers up...
It sounds confusing, but it's honestly a lovely system that I think makes combat nicely interactive, and prevents the D&D "waiting for my turn for 5-10 minutes now" that can happen so easily.
And on a physical table - it's easy.

Is there a way in FG to just ... emulate this?
Have the D10 results showing on the table, and give players the ability to phase these up / take these away?

Interupts have to be declared to the GM, clearly - but held actions can be done by the player without having to take time away from combat, and dealing with the exciting bits.

Ideally, this can all be automated - and players can just click "skip" in the combat tracker - but I'll settle for just having some numbers showing in front of each players and interpreting the old fashioned way.

Andraax
February 2nd, 2015, 16:43
Ideally, this can all be automated - and players can just click "skip" in the combat tracker - but I'll settle for just having some numbers showing in front of each players and interpreting the old fashioned way.

The way I handle it in C&C is that I have an effect named "Wait". If the player wants to hold their action, when it's their turn, they click "Wait" and then they click the "Next Turn" button on the tracker. Later on, they tell me that they want to go next, and if they have the "Wait" effect on, I manually adjust the pointer in the Combat Tracker to their entry and clear the "Wait" effect (so I know they've gone).

Findanniin
February 2nd, 2015, 17:10
Not optimal, but I found a non-FG workaround that'll work fine.

Thanks for the help so far guys, but won't be checking back in.

Cheers.

JohnD
February 2nd, 2015, 18:32
Takes all kinds I suppose.

At least the sun can and is shining now here in Winnipeg, which doesn't happen much in the winter.

By the sound of it, another thread for closing.

AstaSyneri
February 3rd, 2015, 12:05
Not optimal, but I found a non-FG workaround that'll work fine.

Thanks for the help so far guys, but won't be checking back in.

Cheers.

Care to explain what your workaround is?

Valarian
February 3rd, 2015, 13:09
I've just done a similar die mechanic for my Yggdrasill community ruleset (available from the folder in the signature below). It rolls a number of d10 equal to the attribute, adding the skill as a modifier, and then keeps the highest two (or highest one if severely wounded). The dice explode if a 10 is scored (only one of those count from the initial roll), and keeps going until no further 10s are rolled.

Ikael
February 3rd, 2015, 13:27
I wanted to take this approach to one step further by providing simple way to register any roll type, even existing one, and it would manage exploding dices (since CoreRPG does not support it) and further pass results onwards to original handler. Basically this would be intercepting flow between dice landing and result showing. This way people could implement their dice result logic separately from exploding dices. This idea worked fine until the point that I was updating dragdata's DieList to contain final results, thereafter FG engine didn't like me. Seems like you cannot replace DieList with your own set. Basically I wanted to resplace existing list, ie. { {type="d10", result=4}, {type="d10", result=8} } with updated result values, but when that dragdata was passed to next handler there was no dices or results available. I wonder if this is on purpose or is there way to overcome this? If such interception is possible it would allow more flexibility in CoreRPG extensions such as this one.

Valarian
February 3rd, 2015, 14:18
You can replace the rolled dice list inside a die handler, intercepting the results and replacing them with a new die list for output to the chat message. This is what I do for Yggdrasill. Replace the rolled list (of 3 or 4 dice) with the sorted list (of 2 or 1). Inside the die handler, I choose the highest results to display to the chat log.


-- This file is part of the Fantasy Grounds Open Foundation Ruleset project.
-- For the latest information, see https://www.fantasygrounds.com/
--
-- Copyright 2008 SmiteWorks Ltd.
--
-- This file is provided under the Open Game License version 1.0a
-- Refer to the license.html file for the full license text
--
-- All producers of work derived from this material are advised to
-- familiarize themselves with the license, and to take special
-- care in providing the definition of Product Identity (as specified
-- by the OGL) in their products.
--
-- All material submitted to the Open Foundation Ruleset project must
-- contain this notice in a manner applicable to the source file type.

function onInit()
ActionsManager.registerResultHandler("skilldice", handleSkillDice);
end

function handleSkillDice(rSource, rTarget, rRoll)
local reroll = false;
local total = {};

local firstResult = 0;
local secondResult = 0;
local dicetable = rRoll.aDice;
if dicetable then
for n = 1, table.maxn(dicetable) do
if dicetable[n].type == "d10" then
if firstResult > 0 and dicetable[n].result > secondResult then
secondResult = dicetable[n].result;
total[2] = dicetable[n];
elseif dicetable[n].result > firstResult then
firstResult = dicetable[n].result;
total[1] = dicetable[n];
end
end
end
end

if firstResult == 10 or secondResult == 10 then
repeat
local reroll = false;
local dieRoll = math.random(1,10);
local explode = {};
explode.type = "d10";
explode.result = dieRoll;
table.insert(total, explode);
-- Purely for effect - roll a d10
local dice = {};
table.insert(dice, "d10");
Comm.throwDice("explode", dice, 0, "explode");
if dieRoll == 10 then
reroll = true;
end
until not reroll
end

local rMessage = ChatManager.createBaseMessage(rSource, rRoll.sUser);
rMessage.type = rRoll.sType;
rMessage.text = rMessage.text .. rRoll.sDesc;
rMessage.dice = total;
rMessage.diemodifier = rRoll.nMod;

-- Check to see if this roll should be secret (GM or dice tower tag)
if rRoll.bSecret then
rMessage.secret = true;
if rRoll.bTower then
rMessage.icon = "dicetower_icon";
end
elseif User.isHost() and OptionsManager.isOption("REVL", "off") then
rMessage.secret = true;
end

-- Show total if option enabled
if OptionsManager.isOption("TOTL", "on") and total and #(total) > 0 then
rMessage.dicedisplay = 1;
end

Comm.deliverChatMessage(rMessage);
ModifierStack.reset();
return true;
end


The issue I'm currently struggling with is the modifier stack. It seems to work for dragging the dice but not for the double-click (where I use Comm.throwDice instead of draginfo). I can't seem to create a draginfo object for the double-click function to use, and the separated throwDice function seems to clear and overwrite the modifier stack.

Ikael
February 3rd, 2015, 14:31
That example is how you usually do it, but in my case I want to truely intercept with existing handlers. For instance, you have 4E ruleset which implements "ability" handlers. What I wanted to do is intercept "ability" handlers by managing rolled dices as exploded ones and replace results with new ones, then let the flow continue in original handlers. I don't want to affect existing handlers at all, just apply interceptors between them. This way you could easily implement new dice interceptors such as exploding dices outside the core logic. However like mentioned, I was not able to succeed on this. Maybe I will double check since I cannot see reason why setDieList after onDiceLanded would kill this approach. Maybe it's something beyond visible API

Findanniin
February 13th, 2015, 05:06
Care to explain what your workaround is?

There wasn't one, really - I just got very offended by some rather insulting comments directed at me and the way the mods handled it and left the boards to cool off for a while.
Since this thread now shows up high on Google when simply looking for virtual tabletops supporting R&K, I figured I should probably clarify that.

Initiative remains the main stumbling block for automating this ruleset, and I'm contemplating using Tabletop Simulator of all things to handle it, possibly next to FG as a diceroller to help with the math overload R&K can cause.

damned
June 15th, 2016, 13:25
Hello gurus - can anyone help me modify this script so that it displays the characters portrait and name when the roll is executed?
I can add the name but all other rolls also display the portrait and I cant work it out...

Im also trying to expand the /rnk to use any d?? that is passed to it and while that is a whole other story feel free to chime in if you have some pointers there too!
If you want the code at the point I have it to let me know...

Im pulling these into the MoreCore ruleset so they are more easily available.

spite
December 5th, 2016, 02:25
If you want the code at the point I have it to let me know...



Yes please :)

damned
December 5th, 2016, 02:39
Yes please :)

hey Spite - it can be found in MoreCore - the file you are looking for is:
/desktop/scripts/morecore_ikael_dicemechanics.lua
from memory this might also require:
/desktop/ikael_desktop_classes.xml

spite
December 5th, 2016, 07:00
Thanks damned. I plan to try figuring this out this week. I hope you're all prepared for more questions when I inevitably break something.

damned
December 5th, 2016, 09:26
Thanks damned. I plan to try figuring this out this week. I hope you're all prepared for more questions when I inevitably break something.

Ask away but be warned Im not much good at Dice Rollers...