PDA

View Full Version : Module Access



Nickademus
February 16th, 2014, 00:04
Okay, every time I think I have this figured out I find myself in a situation that contradicts what I know. It doesn't help that I can't test this myself since it's based on if the 'player' has or does not have the module file. So then, my question.

Can a player access a module file that the GM does not have? I thought I got this to work in 2.9.x and I also thought that the new module system was supposed to make this easier. If so, what does the GUI look like for the GM when I double-click the module to request permission to open it? I see the hourglass on my side; I think the GM sees a message in the chat window. I've heard something about a grayed entry in the Module Activation window or a red spider web icon.

I'm just trying to gauge if I can use my personal modules (which have non-OGL content and thus cannot be given to the GM legally) to make characters.

Moon Wizard
February 16th, 2014, 02:15
The GM must have the module installed in order for a player to access it during a campaign. Whether the player has it installed or not only determines whether the module is downloaded to the player when shared.

In the PFRPG, 3.5E and 4E rulesets, I believe that the data from the modules is copied onto the character sheet for the most part, so you should be able to build the character locally, but won't have access to the modules to add in later.

Regards,
JPG

Nickademus
February 16th, 2014, 02:48
From my experience if I link an item, feat, spell or ability from a module and take the character to another GM's game, when I click the link I get an error message in the chat window saying I couldn't access the asset of such-and-such module. So I haven't been able to look at the details of anything the GM doesn't have open.

Zeus
February 16th, 2014, 19:57
In the scenario you describe Nickademus, both GMs would have to have the same module available and enabled in both campaigns for your links to work because the items on you character sheet link directly to module data.

Nickademus
February 17th, 2014, 06:11
Hmm. Is there a way when dragging an asset from a library module to force a copy of the data at the destination rather than just a pointer to the data in the module? Something like drag to link; Ctrl+drag to copy.

Trenloe
February 17th, 2014, 09:08
Hmm. Is there a way when dragging an asset from a library module to force a copy of the data at the destination rather than just a pointer to the data in the module? Something like drag to link; Ctrl+drag to copy.
It would need to be programmed into the ruleset for that specific area and link type, both to do the initial copy (or not) and then to process the link correctly when opening it.

Nickademus
February 17th, 2014, 14:04
In the PFRPG, 3.5E and 4E rulesets, I believe that the data from the modules is copied onto the character sheet for the most part, so you should be able to build the character locally, but won't have access to the modules to add in later.

From the sound of it, it already was programmed that way. Or JPG is simply mistaken though it sounds like somewhere something is programmed to copy link data.

I'm afraid I might have to just drop this, which would make my race and class modules useless to me. :/

Trenloe
February 17th, 2014, 17:04
From the sound of it, it already was programmed that way. Or JPG is simply mistaken though it sounds like somewhere something is programmed to copy link data.
I've just done a test and all of the 4 sections on the "Abilities" tab use links to modules, they don't copy the data.

e.g. for feats:

<featlist>
<holder name="Player" owner="true" />
<id-00001>
<holder name="Player" owner="true" />
<shortcut type="windowreference">
<class>referencefeat</class>
<recordname>reference.feats.blindfight@PFRPG Basic Rules</recordname>
</shortcut>
<value type="string">Blind-Fight</value>
</id-00001>
</featlist>


I'm afraid I might have to just drop this, which would make my race and class modules useless to me. :/
I also did the test to see if what we experienced with FG 2.9.x where FG allowed the GM to give permission to a player to access a module that the GM did not have - once the player had requested permission to load it. Unfortunately, unlike in FG 2.9.x, the module does not show up in Module Activation after the player requests access - so the GM can't give access to the player.

So, looks like the only current option (without the ruleset being changed to copy the module data instead of just the link) is to let the GM have your modules in advance if you have used any that are not included with the standard FG install.

For reference (3.5e/PFRPG ruleset)

The following entries are stored in the charsheet DB entry as links to the module:

Feats
Special Abilities
Weapon Proficiencies
Armour Proficiencies
Skill descriptions


The following entries are stored in the charsheet DB entry with the full details copied from the module:

Inventory items - equipment, armour and weapons.
Weapon entries in the actions tab are linked to the inventory entry - so these are essentially copied from the module and stored in the charsheet.
Spells.

Nickademus
February 17th, 2014, 17:14
I also did the test to see if what we experienced with FG 2.9.x where FG allowed the GM to give permission to a player to access a module that the GM did not have - once the player had requested permission to load it. Unfortunately, unlike in FG 2.9.x, the module does not show up in Module Activation after the player requests access - so the GM can't give access to the player.

Ah, I'm not going crazy then. Tis a shame though.


So, looks like the only current option (without the ruleset being changed to copy the module data instead of just the link) is to let the GM have your modules in advance if you have used any that are not included with the standard FG install.

My modules contain non-OGL content which make it illegal to give them to a GM.
Can't even copy/paste the content from a module's entry to the text of a new ability entry on a character either.

*le sigh*

Bidmaron
February 18th, 2014, 01:36
Nickademus, sounds like a recommended feature on JPG's site.

What if there were an extension that would let you paste in the comments of a module you own while you load the character sheet in manage character mode?
Then the extension could let you open a new window with the relevant information stored in the character sheet but not accessible on the GM's machine without the module. Would that meet your needs?

A little more explanation:
The player creates their character on their character sheet in manage character mode with his module, use a new radial menu option to import the module information into the character sheet, and then during the game, you could use a radial menu option on the field of the sheet to display an info window (no editing?) of the stored information.
Do you think that would work?

Bidmaron
February 18th, 2014, 01:45
From the sound of it, it already was programmed that way. Or JPG is simply mistaken though it sounds like somewhere something is programmed to copy link data.

I'm afraid I might have to just drop this, which would make my race and class modules useless to me. :/

What data from those race and class modules are you trying to get to Nickademus?

Nickademus
February 18th, 2014, 01:59
I drag feats, abilities, proficiencies, items and spells over from modules to my characters as I make them and level.

Bidmaron
February 18th, 2014, 02:48
Ok. Did you read my previous post? Would the architecture I describe there do what you want? I'm looking for an excuse to write a 3.0 compatible extension, and this might be it, but I don't want to tackle something that doesn't do what you want.

Nickademus
February 18th, 2014, 03:28
Sorry, didn't see your previous post due to the page change.


The player creates their character on their character sheet in manage character mode with his module, use a new radial menu option to import the module information into the character sheet, and then during the game, you could use a radial menu option on the field of the sheet to display an info window (no editing?) of the stored information.
Do you think that would work?

Well... I don't use Manage Character Mode because I have to access NPCs for some of the assets. This is due to effects from modules not being able to be dragged and dropped into the action tab. Thus I keep my spell, gear and ability actions (with effects) on NPCs to drag over onto the character I'm making. Still, these are treated as 'spells' which copy so they are not part of the current problem.

Of the assets that are an issue (feats, abilities, and proficiencies), this sounds like it could work. How clunky the radial menu interface is would determine if it was something I'd enjoy using. The benefit of my modules right now is that I can literally grab the link icon from the list of abilities/feats/etc. and drag it over the to character sheet; done. Since I've grouped abilities by races and class, it's a matter of grabbing like five links and dropping them onto the character in a matter of seconds. While I'm not completely vane, I'd like to keep as much of this efficiency as feasible.

Honestly, I would think it easier to make an extension that copies the data object instead of the node over for anything on the Abilities tab similar to how it copies items. Might even just be a copy/paste of the item code to the abilities section.

Something else to consider is the act of leveling during a game session where the character can't be removed to the Manage Characters section. I'm at a loss on this though.

Bidmaron
February 18th, 2014, 03:33
OK, you obviously have the full or ultimate license. I haven't made a new character in so long... I thought JPG had fixed manage characters to allow using modules and so on. (why hasn't that happened?)

Bidmaron
February 18th, 2014, 03:36
Edit: Sorry for duplicate post. Don't know how that happened.
(Nickademus, see my PM please)

Nickademus
February 18th, 2014, 03:52
I'm unfamiliar with the Manage Character option as I've never used it. Not sure how modules are handled but my need for NPCs stems from effects from modules not being compatible with the Actions tab (in or out of Manage Characters). So I need a campaign with an NPC list.

I do tend to do things differently than most people but this time it shouldn't affect the situation.

Bidmaron
February 18th, 2014, 04:06
hm.... Well, I look forward to discussion this with you.

Moon Wizard
February 18th, 2014, 04:58
Even if the ruleset were written to do a full record copy, the challenge would be editing the character after character creation. Campaign PCs in Manage Mode are read only.

It would have to be a feature for the player to request locally installed modules not installed on GM machine, that integrates with the current system that allows the GM to share any module.

JPG

Nickademus
February 18th, 2014, 06:44
I agree. Though I usually have a copy of the character between sessions either because I played a PFS game and the game is over or because I get an export from the GM. I also tend to stockpile assets for future levels on my characters.

But this is my personal choice and wouldn't be what some people do.

Trenloe
February 18th, 2014, 10:50
OK, you obviously have the full or ultimate license. I haven't made a new character in so long... I thought JPG had fixed manage characters to allow using modules and so on. (why hasn't that happened?)
Modules are available in manage characters - have been for a while. Of course, they need to be installed on the computer using manage characters...

Trenloe
February 18th, 2014, 10:53
I agree. Though I usually have a copy of the character between sessions either because I played a PFS game and the game is over or because I get an export from the GM. I also tend to stockpile assets for future levels on my characters.
You do know that through manage characters you get access to all games you played in (that are still stored in the player cache)? This allows you to load manage characters with a specific game (campaign) you played in and your PC as it was when the game ended will be available to you - you can then export the XML from here if you want the XML to import into another game or you can edit the PC if you want to put it in your local characters list and be available to select when you join a game in the future.

There's really no need to request the GM to export your character XML - it is there available for you in your player cache via manage characters.

https://dl.dropboxusercontent.com/u/39085830/Screenshots/Fantasy%20Grounds/Manage%20Characters%20Screen.JPG

Trenloe
February 18th, 2014, 11:04
A little more explanation:
The player creates their character on their character sheet in manage character mode with his module, use a new radial menu option to import the module information into the character sheet, and then during the game, you could use a radial menu option on the field of the sheet to display an info window (no editing?) of the stored information.
Do you think that would work?
I think perhaps the best way would be that the extension copies the data when the link is dropped in the Feats, Special Abilities, Weapon Proficiencies or Armour Proficiencies entry - to produce a record similar to what would be produced if the player manually typed in the ability text. The following shows 2 feat entries - the first is a link to a module, the second is manually entered text:

<featlist>
<holder name="Player" owner="true" />
<id-00001>
<holder name="Player" owner="true" />
<shortcut type="windowreference">
<class>referencefeat</class>
<recordname>reference.feats.blindfight@PFRPG Basic Rules</recordname>
</shortcut>
<value type="string">Blind-Fight</value>
</id-00001>
<id-00002>
<holder name="Player" owner="true" />
<description type="string">This is the text for my manual feat.</description>
<locked type="number">0</locked>
<shortcut type="windowreference">
<class>ref_ability</class>
<recordname></recordname>
</shortcut>
<value type="string">My Manual Feat</value>
</id-00002>
</featlist>
Using this approach would mean that the data would then be available in any game being played - with or without the extension being loaded by the GM. The player would only have to load the extension when they are creating/editing their PC if they wanted to copy the data rather than link it, which could be done in Manage Characters or within a campaign (so Nickademus would be able to continue using NPC entries to store effects).

The extension could, of course, be refined a little further and have a campaign option to change link to copy, or even a radio button within the character sheet to select link or copy. But, selecting the functionality by simply enabling the extension would be a good start... :)

Or, as you have mentioned - have a radial button that goes through all of the current links and converts them to the manual entry format shown in the code above. Again, this extension would just need to be used by the player when first creating their PC - it wouldn't need to be loaded by the GM.

Nickademus
February 18th, 2014, 15:54
Trenloe knows what I'm talking about. A simple change in what the windowclass does when a link from a module is dragged and dropped. Like JPG said, it wouldn't help during a game if the GM didn't have the module, but using the Manage Character export it would be quick and easy to pull a character out, drag the new feats/abilities/spells into the sheet export and hand back to the GM. A reload after everyone is done leveling their characters and we are all set to go.

Bidmaron
February 19th, 2014, 03:36
Well, the way I'd want to do it I think would be the best of both worlds. I like Nickademus' original idea of holding down a modifier key during the drag to cause the contents to drop rather than the link. I think I'd put controls on top of one another and z-stack the one that was dragged on top. In the OnInit, I'd check to see if the module was loaded and stack the controls accordingly. You could then, for example, click on 'Dwarf' for race if the module were loaded to bring up the Dwarf entry. Or, if the module wasn't loaded, you could click on a radial option to look at whatever information was copied over. Thanks, Trenloe for the code example. Once Nickademus and I can chat, I'll see what I can knock out this weekend.

So, as long as the GM exported the character, the player could load his modules in manage characters, do whatever maintenance he needed, and then bring it back into the game.

Trenloe
February 19th, 2014, 10:02
Well, the way I'd want to do it I think would be the best of both worlds. I like Nickademus' original idea of holding down a modifier key during the drag to cause the contents to drop rather than the link. I think I'd put controls on top of one another and z-stack the one that was dragged on top. In the OnInit, I'd check to see if the module was loaded and stack the controls accordingly. You could then, for example, click on 'Dwarf' for race if the module were loaded to bring up the Dwarf entry. Or, if the module wasn't loaded, you could click on a radial option to look at whatever information was copied over.
I'm still not clear on this - would it require the GM to have the extension loaded at game time, or is it only the player who needs it during character creation/admin?

What I was trying to get across in my post above was that it would be best all round if this was only required by the player during character creation/maintenance. If the GM also required it during game time for the player to see their info then we are essentially getting back to something similar to the original problem - if the GM doesn't have the right extensions loaded the player can't see the info, just like if the GM didn't have the data modules loaded in Nickademus's original post. As a GM I'd be loathe to load an extra extension (that always has the possibility to clash with another extension) just for one or two of my players to be able to show their custom content in their characters.

In the end, it's you doing the work so it's entirely up to you how you do it. To make it of universal use to the Fantasy Grounds community I'd suggest that it is made a player only extension.

Nickademus
February 19th, 2014, 22:25
As a GM I'd be loathe to load an extra extension (that always has the possibility to clash with another extension) just for one or two of my players to be able to show their custom content in their characters.

I agree with this.


If the GM also required it during game time for the player to see their info then we are essentially getting back to something similar to the original problem - if the GM doesn't have the right extensions loaded the player can't see the info, just like if the GM didn't have the data modules loaded in Nickademus's original post.

This is not quite the same. The issue with the module is that it would be illegal to give the GM due to copyrights. The extension would have no such hindrance, but see the first point...

Nickademus
February 20th, 2014, 22:38
Bidmaron, clear out your message; you're full.

I'll be in Team Speak as well.

Bidmaron
February 21st, 2014, 01:06
Why are our inboxes so friggin' small?????? 40 messages - really? (outgoing and incoming combined!) Call when ready.

Bidmaron
February 22nd, 2014, 16:45
My modules contain non-OGL content which make it illegal to give them to a GM.
Can't even copy/paste the content from a module's entry to the text of a new ability entry on a character either.

*le sigh*
Why can't you paste the text on a new ability entry? The reason I ask is that the way I plan on implementing the extension is to bring up a new window with the information from the module (which is copied into the database) when you use a radial menu option if the module isn't loaded at run-time. If the reason you can't paste is because you think that violates the fair use clause of copyright law, then my solution won't work either. If that's not the reason, then there is something weird going on with your module that will probably not let my solution work either.

Nickademus
February 22nd, 2014, 19:49
The text of a module entry, or at least the reference windows that I've seen, doesn't allow highlighting and thus copying.

Bidmaron
February 22nd, 2014, 20:57
OK. That's kind of lame. Guess that should be a feature request.

However, I don't think that would stop what I plan to do on the extension.

Bidmaron
February 27th, 2014, 12:44
Okay, I'm finally getting started on the ModuleDropper (i'd like a better name). The new ruleset structure takes some getting used to. I cannot find the onDrop handler for anything except feats, which I've put below. Is there some intrinsic FG code that handles dropping a link or am I just missing something obvious?

I have looked both in CoreRPG and 3.5E, and this is the only thing I can find that handles dropping on the abilities tab of the character sheet:

3.5 ruleset, file: template_char.xml

<script>
function onDrop(x, y, draginfo)
if draginfo.isType("shortcut") then
if draginfo.getShortcutData() == "referencefeat" then
local nodeSource = draginfo.getDatabaseNode();

local win = addEntry(true);
if win then
win.value.setValue(DB.getValue(nodeSource, "name", ""));
win.shortcut.setValue(draginfo.getShortcutData());
end
end

return true;
end
end
</script>


If the code is FG intrinsic, great, I can override to intercept the drop, but I just need a reality check to make sure I'm not missing something more fundamental in the inheritance structure here.

Trenloe
February 27th, 2014, 13:49
Okay, I'm finally getting started on the ModuleDropper (i'd like a better name). The new ruleset structure takes some getting used to. I cannot find the onDrop handler for anything except feats, which I've put below. Is there some intrinsic FG code that handles dropping a link or am I just missing something obvious?

I have looked both in CoreRPG and 3.5E, and this is the only thing I can find that handles dropping on the abilities tab of the character sheet:

3.5 ruleset, file: template_char.xml

<script>
function onDrop(x, y, draginfo)
if draginfo.isType("shortcut") then
if draginfo.getShortcutData() == "referencefeat" then
local nodeSource = draginfo.getDatabaseNode();

local win = addEntry(true);
if win then
win.value.setValue(DB.getValue(nodeSource, "name", ""));
win.shortcut.setValue(draginfo.getShortcutData());
end
end

return true;
end
end
</script>


If the code is FG intrinsic, great, I can override to intercept the drop, but I just need a reality check to make sure I'm not missing something more fundamental in the inheritance structure here.
The code you reference above is in the <list_charabilities> template, which is used by all of the 4 ability lists on the Abilities tab (see the "charsheet_abilities" windowclass in \campaign\record_char_abilities.xml). "referencefeat" is just the drag type label, and it is not just reserved for feats. Any link entry in a module that could be dragged to any of the ability lists should be of class "referencefeat" so that the above onDrop code will trigger.

EDIT: A quick scan of Nickademus's modules he has shared with the community shows that he is using the "referencefeat" class for links that could be dragged to the abilities tab, so this code will trigger for his modules. :)

Bidmaron
February 27th, 2014, 16:05
Well, if he already fixed his problem w/o saying so, then I'm wasting my time. Let me go check his code. I'm sure I can find something else to work, but I'm not interested in fixing something already fixed.

Trenloe
February 27th, 2014, 16:15
Well, if he already fixed his problem w/o saying so, then I'm wasting my time. Let me go check his code. I'm sure I can find something else to work, but I'm not interested in fixing something already fixed.
OK, there is obviously some confusion here... My mention of the "referencefeat" class being used by Nickademus in his modules was to let you know that he is using that specific name, so you can do some code in the onDrop function using the "if draginfo.getShortcutData() == "referencefeat"..." code which you show above, and know that this will cover Nickademus's module data.

It is within this onDrop code that you will need to do the changes to extract the text of the "referencefeat" shortcut and put it in the ability list entry as actual text instead of a link to the module.

Bidmaron
February 27th, 2014, 17:00
Right, got it. I thought you meant he was already intercepting it to fix the problem this whole thread was about, but I don't see that in his most recent extension. My confusion was you said module and I somehow thought 'extension,' since he had just the other day posted his nice Ability Damage extension.

Thanks, Trenloe. I believe you have given me the answer I need to move on. I had assume that the reference feat meant the data was only for feats (figuring it would have been reference ability or something more generic if it wasn't for feats. But I've been there before where you work an issue and give the object a name and then you reuse it and don't rename it. I just thought I was missing something big picture).

At work on it.

Nickademus
February 27th, 2014, 19:25
I'm not doing any work on this. My attention is currently on effects.

I have changed how I structure my modules a bit since I started, but I do still use the referencefeat class for feats, traits, proficiencies, and abilities. Any updates I do to the public modules will also use this class.

Not sure what happened, but it seems that somewhere in the 3.x updates the appearance of the feat reference window changed. It still isn't editable but the window looks more like the item window instead of the old white-background window. This has no effect on the topic of this thread but it is interesting that Smite Works decided to change it.

Bidmaron
February 27th, 2014, 20:46
Since I'm now actively working this task, I've started an Armory thread here (https://www.fantasygrounds.com/forums/showthread.php?20565-ModulePlus-Extension&p=169438#post169438) to document as I go.

Zeus
February 27th, 2014, 22:56
My only thoughts on such an extension is that if you copy referenced module data directly to to the campaign db (for data access without the need for the original module), then over time you likely end up with a very large campaign db. This will ultimately impact network connection times for players connecting to the campaign. Deep tree char sheets impact the Character Selection window loading times as well. This was a problem for my groups in 4E until I modulised my 4E data.

Modules are a very convenient feature of FG, they enable data to be portable between campaigns, they reduce the size of the campaign db and they reduce duplication of data, all of which have a positive impact on FG performance.

Perhaps the problems lie

Bidmaron
February 28th, 2014, 02:08
Roger what you are saying, Zeus, but I can't believe a few feats and special abilities will make much difference compared to EVERY item, weapon, and spell that is completely copied over right now. The alternative is to restore modules (partially) to the way they were so players can load their own modules regardless of whether DM has it or not.

Bidmaron
March 3rd, 2014, 04:46
Just in case anyone trolls this thread, the extension is now in another thread here (https://www.fantasygrounds.com/forums/showthread.php?20565-ModulePlus-Extension), and version 0.1 is now there.