View Full Version : Feedback Thread - FGU v4.5.10 and 2024-08 Ruleset Updates
Moon Wizard
July 18th, 2024, 04:37
This thread is to provide feedback on the latest changes located in the beta Test channel. Please post any feedback/issues to this thread.
Regards,
JPG
MrDDT
July 18th, 2024, 05:33
Love the new default theme.
Would love to see what you guys do with a dark version.
BadEye
July 18th, 2024, 13:03
Love the new default theme.
Would love to see what you guys do with a dark version.
Incoming!
61333
rhagelstrom
July 18th, 2024, 13:31
I like the visual changes. It seems that the icons in chat are now standardized finally to 30x30 so everything lines up. I think they could go bigger, up to 50x50 even but I'm fine with 30x30. I know those are defined by the raw size of the image but maybe a scale option so at least FG can force those to be all the same size. That way it's not possible to have those all differing and people can choose what works for them.
Couple of things while we are on nitpicky, see screen shots.
If the chat message doesn't have an icon, which I think they all should, the chat doesn't line up nice and never has. If the message doesn't have an icon, maybe a blank placeholder is there so the chat lines up.
SFRPG, the tabs, white on white are now unreadable
When a power doesn't have anything defined in it, it doesn't line up on the char sheet. A spacer in that case so all this lines up would be much more visually appealing. Yes I know it has always been this way but once you see it you can't unsee it.
Lonewolf
July 18th, 2024, 17:42
[SW] Integrated Load Limit house rule extension into ruleset.
What is the page of the Savage Worlds rule book that explains the Load Limit house rule?
Trenloe
July 18th, 2024, 17:56
What is the page of the Savage Worlds rule book that explains the Load Limit house rule?
I don't know about the page number as it's a house rule, but this is the extension that is being merged into the base ruleset: https://www.fantasygrounds.com/forums/showthread.php?38569-Ikael-s-miscellaneous-extensions&p=340809&viewfull=1#post340809
rocketvaultgames
July 18th, 2024, 20:03
Incoming!
61333
This is very exciting! Any chance of a way to move the menu bar, or even just toggle it from right side of screen to left side of screen? I currently use the Better Menus extension because the right side of the screen on the giant monitors is just too far away...
Moon Wizard
July 18th, 2024, 21:15
There are no plans for that at this point; but please add to the feature request list in my sig.
Regards,
JPG
Jiminimonka
July 18th, 2024, 23:45
I just loaded up Test and opened a random NPC, but I got lucky and found a bug.
This NPC has Smarts d12+2 - the dark box on the lower right of the Smart 12 should say +2 but the font it black I think so it isn't visible.
61336
Ecks
July 19th, 2024, 01:06
Overall, I think the new theme looks good. It does seem that many font sizes got smaller though - at 1440p, I ended up having to use scaleui to make things a little more readable. For example, the window heading font (e.g. BOOK - D&D PLAYER'S HANDBOOK) is 9 pixels tall instead of 13 pixels in the previous theme (on my screen).
The inactive tabs on the 5E character sheet though are very hard to read with the dark grey text on red background. Without scaling the UI, they're nearly invisible.
Actually, looking closer at this, it seems the inactive tab text color changes slightly in some cases:
Quit and restart FGU
Create a new 5E campaign
Open a character sheet
Text on inactive tabs is dark
scaleui 110
Text on inactive tabs is now lighter
scaleui 100
Text on inactive tabs is still lighter
This inactive tab color persists until FGU is restarted, then they go back to dark
Ecks
July 19th, 2024, 01:14
Speaking of scaleui, some of the new buttons have some artifacts at certain scales, e.g. at 130 the window buttons have some white lines through them: story130.jpg (https://www.fantasygrounds.com/forums/attachment.php?attachmentid=61340)
Lonewolf
July 19th, 2024, 02:59
I don't know about the page number as it's a house rule, but this is the extension that is being merged into the base ruleset: https://www.fantasygrounds.com/forums/showthread.php?38569-Ikael-s-miscellaneous-extensions&p=340809&viewfull=1#post340809
I have decide to make up my own house rules not in the book as well now. I will just put them into ruleset patches after August as well so everyone has to use them.
Moon Wizard
July 19th, 2024, 04:41
@Jiminimonka,
Thanks for the report. I'll look at that field.
@Ecks,
There were always artifacts at different UI scales; just more prominent at certain UI scales or certain graphics. I usually stick to 100,125,150,175,200.
I'll mentioned the window title size to Adam; though generally font sizes roughly stayed the same other than titles.
For the tabs issue, I'll have to review.
@Lonewolf,
It's usually best to limit the number of house rules automatically included in a ruleset to only those that "everybody" changes at the table; not ones that seem cool or are used by only a few people. I felt like Load Limit was one of those that everyone changes or ignores, due to low encumbrance load levels in SW rules. For the remaining house rules, those should remain as independent extensions; and probably moved to the Forge.
Regards,
JPG
Moon Wizard
July 19th, 2024, 16:52
Just pushed an update with a title font that is about 12% bigger. (16->18); as well as record view title fix.
Regards,
JPG
Moon Wizard
July 19th, 2024, 19:09
Just pushed updates to SavageWorlds that fixes the modifier widget displays.
Regards,
JPG
Moon Wizard
July 19th, 2024, 23:52
Pushed new updates for 2E and Shadowdark.
Regards,
JPG
Ecks
July 20th, 2024, 02:13
On the 5E character sheet, is it expected that the character sheet windows opened via the gear icons no longer have headings? For example, "CLASS & LEVEL - Name" or "HEALTH CALC - Name".
Muagen
July 20th, 2024, 14:32
Quick question regarding that swank new dark theme: is the new theme going to be selectable from the extensions list for those rulesets that have their own default themes?
Moon Wizard
July 20th, 2024, 16:33
@Ecks,
Just pushed a fix for that one.
@Muagen,
It's only part of Core/PF/3.5E/5E right now; though Adam has a Dark Mode version in development that will be separate.
Regards,
JPG
Muagen
July 20th, 2024, 17:31
Well, I hope that the new Dark Mode is similar to that theme because I really dig it.
SilentRuin
July 20th, 2024, 22:33
This is rather vague...
Review any overrides to the following scripts:
LibraryData, ItemManager
I have no idea what to do with this.
I use (don't override) calls in LibraryData.
I override ItemManager functions:
ItemManager.getItemSourceType
ItemManager.handleAnyDrop
ItemManager.addItemToList
ItemManager.sendItemTransfer
ItemManager.getDisplayName
All of these will call original code (if not deciding to go its own way).
Moon Wizard
July 20th, 2024, 22:48
That's correct. If you are overriding the core functionality of either of those global scripts; you will need to review your code and compare with the core version.
Regards,
JPG
SilentRuin
July 20th, 2024, 23:55
That's correct. If you are overriding the core functionality of either of those global scripts; you will need to review your code and compare with the core version.
Regards,
JPG
Yep I see now it completely broke the transfers in Map Parcel extension for TEST.
dmbrown
July 21st, 2024, 00:57
Is it possible to release the files used to create this new theme, so that it will be easier for others to create their own theme? Something like the link below, but for all the various pieces in multiple Photoshop files?
https://fantasygroundsunity.atlassian.net/wiki/spaces/FGCP/pages/1992851457/Theming+-+Sidebar+Dock+Frames
SilentRuin
July 21st, 2024, 01:35
Bug?
Previously ItemManager.getItemSourceType would return the following for this node:
s'treasureparcels.id-00005.itemlist.id-00001'
s'treasureparcel'
In TEST this now returns "" which causes me much grief.
This still returns the correct value in TEST for the following node:
s'treasureparcels.id-00005'
s'treasureparcel'
So was this an intentional "no longer works as it did" change that I have to now resolve on my own or is this actually a bug in TEST?
Viryz
July 21st, 2024, 11:40
The new theme looks excellent. The interface is visually less cluttered, but I think the spacing between elements needs some work, as it's clearly the same as before, although it could definitely be reduced.
I have a question/suggestion on a slightly different topic. I've been using the new item functionality, and learned that the item picture can be put on the map. Are there plans to make this picture also a link to the item's statblock? To be able to open the item from a token on the map? Is there a chance of such functionality in Parcels?
Or maybe it's better to write it in Feature Request if there are no such plans?
SilentRuin
July 21st, 2024, 16:03
Bug?
Previously ItemManager.getItemSourceType would return the following for this node:
s'treasureparcels.id-00005.itemlist.id-00001'
s'treasureparcel'
In TEST this now returns "" which causes me much grief.
This still returns the correct value in TEST for the following node:
s'treasureparcels.id-00005'
s'treasureparcel'
So was this an intentional "no longer works as it did" change that I have to now resolve on my own or is this actually a bug in TEST?
The first three of these are required to get ItemManager.getItemSourceType back to working in my world (not sure if there are more that are busted but these are ones returning "" that I know are different that they were) - the last two I don't know if I require or not but figured I'd play it safe. Gist being if this new TEST stuff returns "" I can't believe it and have to do these checks to make sure.
if StringManager.startsWith(sNodePath, "treasureparcel") then
return "treasureparcel";
elseif StringManager.startsWith(sNodePath, "partysheet") then
return "partysheet";
elseif StringManager.startsWith(sNodePath, "charsheet") then
return "charsheet";
elseif StringManager.startsWith(sNodePath, "temp") then
return "temp";
elseif StringManager.startsWith(sNodePath, "item") then
return "item";
end
SilentRuin
July 21st, 2024, 16:33
I don't know why TEST has added these verifications for records
-- bCurrency = Enables currency can be transferred to this record type. (See ItemManager for default currency paths; or use custom data registration to set different one.)
-- bInventory = Enables items can be transferred to this record type. (See ItemManager for default inventory paths; or use custom data registration to set different one.)
But of course for Extensions (more than one does this) that have inventory tabs added onto NPC/VEHICLE sheets this needlessly breaks them all.
I suppose the only recourse is to now override
aRecords = {
["vehicle"] = {
aDataMap = { "vehicle", "reference.vehicles" },
aGMListButtons = { "button_vehicle_type" },
aCustomFilters = {
["Type"] = { sField = "type" },
},
tOptions = {
bExport = true,
bID = true,
bPicture = true,
bToken = true,
bCurrency = true,
bInventory = true,
},
["npc"] = {
aDataMap = { "npc", "reference.npcs" },
sListDisplayClass = "masterindexitem_id",
aGMEditButtons = { "button_add_npc_import" },
aCustom = {
tWindowMenu = { ["left"] = { "chat_speak" } },
},
tOptions = {
bExport = true,
bID = true,
bPicture = true,
bToken = true,
bCurrency = true,
bInventory = true,
}
}
This seems like a really unnecessary burden to level upon extensions to insure these checks are not short circuited. It seems the code is getting less flexible every update.
I'm actually not even sure how much has been broken due to these checks. Or what will happen if I set these in aRecords now.
SilentRuin
July 21st, 2024, 17:09
I don't know why TEST has added these verifications for records
-- bCurrency = Enables currency can be transferred to this record type. (See ItemManager for default currency paths; or use custom data registration to set different one.)
-- bInventory = Enables items can be transferred to this record type. (See ItemManager for default inventory paths; or use custom data registration to set different one.)
But of course for Extensions (more than one does this) that have inventory tabs added onto NPC/VEHICLE sheets this needlessly breaks them all.
I suppose the only recourse is to now override
aRecords = {
["vehicle"] = {
aDataMap = { "vehicle", "reference.vehicles" },
aGMListButtons = { "button_vehicle_type" },
aCustomFilters = {
["Type"] = { sField = "type" },
},
tOptions = {
bExport = true,
bID = true,
bPicture = true,
bToken = true,
bCurrency = true,
bInventory = true,
},
["npc"] = {
aDataMap = { "npc", "reference.npcs" },
sListDisplayClass = "masterindexitem_id",
aGMEditButtons = { "button_add_npc_import" },
aCustom = {
tWindowMenu = { ["left"] = { "chat_speak" } },
},
tOptions = {
bExport = true,
bID = true,
bPicture = true,
bToken = true,
bCurrency = true,
bInventory = true,
}
}
This seems like a really unnecessary burden to level upon extensions to insure these checks are not short circuited. It seems the code is getting less flexible every update.
I'm actually not even sure how much has been broken due to these checks. Or what will happen if I set these in aRecords now.
Not even setting these flags can get this working again. I'll have to rip out and override these new guards as they are unusable. To test I did the following in my onInit()...
RecordDataManager.setRecordTypeOption("npc", "bInventory", true);
RecordDataManager.setRecordTypeOption("npc", "bCurrency", true);
RecordDataManager.setRecordTypeOption("vehicle", "bInventory", true);
RecordDataManager.setRecordTypeOption("vehicle", "bCurrency", true);
This to get it to skip these checks for these sheets which are processing charsheet's inventory tab... Failed still get the dreaded "Currency support not registered for record type..." every time the inventory currency was copied to (bInventory was not really needed for this stuff so that data transfer still works after previous mentioned bug? was fixed).
So I overrode the following to see why it refuses to recognize bCurrency for npc sheet - just to add some Debug.console() checks:
CurrencyManager.addActorCurrency = addActorCurrency;
function addActorCurrency(nodeActor, sNewCurrency, nNewCurrency)
Debug.console(DB.getPath(nodeActor));
local sRecordType = RecordDataManager.getRecordTypeFromRecordPath(DB.g etPath(nodeActor));
Debug.console(sRecordType);
Debug.console(RecordDataManager.getRecordTypeOptio n(sRecordType, "bCurrency"));
if not ItemManager.doesRecordTypeHaveCurrency(sRecordType ) then
...
and see that the results show me
[7/21/2024 10:59:44 AM] s'combattracker.list.id-00028'
[7/21/2024 10:59:44 AM] s''
[7/21/2024 10:59:44 AM] bFALSE
Which of course will never get processed.
Before I'm forced to butcher all this code to make it ignore these checks I'd like to understand why they are being done.
Moon Wizard
July 21st, 2024, 17:17
The code allows records to specify that they support inventory and/or currency via flags on the records; and the ItemManager script was updated to support that behavior.
Regards,
JPG
SilentRuin
July 21st, 2024, 17:39
The code allows records to specify that they support inventory and/or currency via flags on the records; and the ItemManager script was updated to support that behavior.
Regards,
JPG
This does not answer my question. It can't work with a combat group entry - which your code feeds it for NPC inventory drops. Do I have to butcher this and fix it myself?
Also, you did not answer the https://www.fantasygrounds.com/forums/showthread.php?82090-Feedback-Thread-FGU-v4-5-10-and-2024-08-Ruleset-Updates&p=721245&viewfull=1#post721245 bug? question. Am I going to have to fix this myself also?
Moon Wizard
July 21st, 2024, 18:30
Basically, the ItemManager can't use startsWith to figure out where things are coming from, because NPCs and Vehicles need inventory (for some rulesets) and some will live on the party sheet, character sheet or other places. So, the ItemManager call to figure out the source needs to be different.
With the standard item transfer mechanics, it didn't need to be as specific, so it was working; but I can see the need for determining source a little better. I've pushed an update that should help.
Regards,
JPG
SilentRuin
July 21st, 2024, 19:33
Basically, the ItemManager can't use startsWith to figure out where things are coming from, because NPCs and Vehicles need inventory (for some rulesets) and some will live on the party sheet, character sheet or other places. So, the ItemManager call to figure out the source needs to be different.
With the standard item transfer mechanics, it didn't need to be as specific, so it was working; but I can see the need for determining source a little better. I've pushed an update that should help.
Regards,
JPG
ItemManager.getItemSourceType seems to be working again returning the source type regardless of node level, so that fixed it.
Currencies still are blocked (one example being combat group entry can't be parsed per previous mail in current new code checks) so I'll have to figure out how to override things to get that working again.
Moon Wizard
July 21st, 2024, 20:35
What function is doing the currency transfer that is getting blocked?
Regards,
JPG
SilentRuin
July 21st, 2024, 21:17
What function is doing the currency transfer that is getting blocked?
Regards,
JPG
Exactly what I said in here (https://www.fantasygrounds.com/forums/showthread.php?82090-Feedback-Thread-FGU-v4-5-10-and-2024-08-Ruleset-Updates&p=721248&viewfull=1#post721248) (CurrencyManager.addActorCurrency). But I've worked around that with the following fix to insure combattracker paths return a record type....
In onInit()...
RecordDataManager.setRecordTypeOption("npc", "bInventory", true);
RecordDataManager.setRecordTypeOption("npc", "bCurrency", true);
RecordDataManager.setRecordTypeOption("vehicle", "bInventory", true);
RecordDataManager.setRecordTypeOption("vehicle", "bCurrency", true);
savegetRecordTypeFromListPath = RecordDataManager.getRecordTypeFromListPath;
RecordDataManager.getRecordTypeFromListPath = getRecordTypeFromListPath;
-- insure combattracker entries can return record type
function getRecordTypeFromListPath(sListPath)
local sRecordType = savegetRecordTypeFromListPath(sListPath);
if sRecordType == "" and StringManager.startsWith(sListPath, "combattracker") then
local nodeCT = DB.findNode(sListPath);
if nodeCT then
sRecordType, _ = DB.getValue(nodeCT, "link", "npc", "");
end
end
return sRecordType;
end
This is all because the npc/vehicle sheets have inventory tab from charsheet used in them which means I need to "trick" (as I've done for 3 years now) the ItemManager.getItemSourceType returns for npc/vehicle into thinking they are charsheet. Simple/safe and has worked for a very long time.
-- replaced ItemManager.getItemSourceType in order to support NPC inventory list
function getItemSourceType(vNode)
--Debug.console(User.getUsername() .. "(" .. tostring(Session.IsHost) .. ") -> manager_mapparcel:getItemSourceType called");
-- Call original code to see if it can resolve it - if not new npc inventory stuff
local sReturn = savegetItemSourceType(vNode);
if sReturn and sReturn ~= "" then
if sReturn == "npc" or sReturn == "vehicle" then
sReturn = "charsheet";
end
end
return sReturn;
end
(above code was simplified from LIVE as I don't think I needed all the additional checking now)
However, I'm still working through currency and encumbrance issues for npc/vehicle. Map Parcels is designed to allow map parcel treasureparcels to be moved back and forth between charsheet (npc/vehicle) inventories, other treasureparcels, and partysheet inventories where the data is actually moved (not copied though a button in map parcels form can be toggled to allow copying). Many years has done wonders for parcels - just need to recover where I was after this TEST update. Currently I'm down to finding out why (with above fixes) the currencies are not working going back into treasureparcels (no field data so ends up adding a blank field for each currency entry with correct value - still works when currency moved into charsheet/npc/vehicle/partysheet inventories) and figuring out why encumberance for npc/vehicle is not working (not sure when it stopped working as its busted in LIVE also - used to work). Also as party sheet has a link I'd want to support that also (to get full support of moving inventory/currency between any charsheet/npc/vehicle/treasureparcel/partysheet inventory).
Even with simple fixes like above it takes a lot of debug.console in different function in LIVE and TEST to figure out what has changed so may take a while before I solve the rest.
SilentRuin
July 21st, 2024, 21:35
Well the mystery of why my npc/vehicle charsheet inventory tabs no longer do encumberance is solved. At some point in some past FGU update I missed the functions
CharEncumbranceManager.enableCharCurrencyHandlers
CharEncumbranceManager.disableCharCurrencyHandlers
disappearing - which I overrode to support npc/vehicle inventory encumberances. Any idea what replaced them? This was not in this current TEST update FYI - they have been gone a while I suspect and never noticed.
rhagelstrom
July 21st, 2024, 22:31
Well the mystery of why my npc/vehicle charsheet inventory tabs no longer do encumberance is solved. At some point in some past FGU update I missed the functions
CharEncumbranceManager.enableCharCurrencyHandlers
CharEncumbranceManager.disableCharCurrencyHandlers
disappearing - which I overrode to support npc/vehicle inventory encumberances. Any idea what replaced them? This was not in this current TEST update FYI - they have been gone a while I suspect and never noticed.
CharEncumbranceManager.enableEncumbranceHandlers
CharEncumbranceManager.disableEncumbranceHandlers
SilentRuin
July 21st, 2024, 23:02
CharEncumbranceManager.enableEncumbranceHandlers
CharEncumbranceManager.disableEncumbranceHandlers
Thanks.
SilentRuin
July 21st, 2024, 23:06
Bug in ItemManager.handleCurrencyTransfer.
You have to check for treasureparcels and partysheet before you jump off into something else. The if statement is out of order. It should look like this, otherwise it will never process the proper db.xml tags...
-- insure combattracker entries can return record type
function getRecordTypeFromListPath(sListPath)
local sRecordType = savegetRecordTypeFromListPath(sListPath);
if sRecordType == "" and StringManager.startsWith(sListPath, "combattracker") then
local nodeCT = DB.findNode(sListPath);
if nodeCT then
sRecordType, _ = DB.getValue(nodeCT, "link", "npc", "");
end
end
return sRecordType;
end
function handleCurrencyTransfer(msgOOB)
local nodeTargetRecord = DB.findNode(msgOOB.sTarget);
if not nodeTargetRecord then
return;
end
local nCurrency = tonumber(msgOOB.nCurrency) or 0;
local sCurrency = msgOOB.sCurrency;
Debug.console(nCurrency, sCurrency);
local sTargetRecordType = ItemManager.getItemSourceType(nodeTargetRecord);
Debug.console(sTargetRecordType);
if sTargetRecordType == "treasureparcel" then
local nodeTargetCoin = nil;
local sCurrencyLower = sCurrency:lower();
for _,vParcelCoin in ipairs(DB.getChildList(nodeTargetRecord, "coinlist")) do
Debug.console(DB.getValue(vParcelCoin, "description", ""):lower());
Debug.console(sCurrencyLower);
if DB.getValue(vParcelCoin, "description", ""):lower() == sCurrencyLower then
nodeTargetCoin = vParcelCoin;
Debug.console(nodeTargetCoin);
end
end
Debug.console(nodeTargetCoin);
if not nodeTargetCoin then
nodeTargetCoin = DB.createChild(DB.createChild(nodeTargetRecord, "coinlist"));
DB.setValue(nodeTargetCoin, "description", "string", sCurrency);
end
DB.setValue(nodeTargetCoin, "amount", "number", nCurrency + DB.getValue(nodeTargetCoin, "amount", 0));
elseif sTargetRecordType == "partysheet" then
local nodeCurrency = nil;
local sCurrencyLower = sCurrency:lower();
for _,vPSCurrency in ipairs(DB.getChildList("partysheet.treasureparcelcoinlist")) do
if DB.getValue(vPSCurrency, "description", ""):lower() == sCurrencyLower then
nodeCurrency = vPSCurrency;
break;
end
end
if nodeCurrency then
DB.setValue(nodeCurrency, "amount", "number", DB.getValue(nodeCurrency, "amount", 0) + nCurrency);
else
nodeCurrency = DB.createChild("partysheet.treasureparcelcoinlist");
DB.setValue(nodeCurrency, "description", "string", sCurrency);
DB.setValue(nodeCurrency, "amount", "number", nCurrency);
end
elseif ItemManager.doesRecordTypeHaveCurrency(sTargetReco rdType) then
CurrencyManager.addActorCurrency(nodeTargetRecord, sCurrency, nCurrency);
end
end
SilentRuin
July 22nd, 2024, 00:29
Bug in ItemManager.handleCurrencyTransfer.
You have to check for treasureparcels and partysheet before you jump off into something else. The if statement is out of order. It should look like this, otherwise it will never process the proper db.xml tags...
-- insure combattracker entries can return record type
function getRecordTypeFromListPath(sListPath)
local sRecordType = savegetRecordTypeFromListPath(sListPath);
if sRecordType == "" and StringManager.startsWith(sListPath, "combattracker") then
local nodeCT = DB.findNode(sListPath);
if nodeCT then
sRecordType, _ = DB.getValue(nodeCT, "link", "npc", "");
end
end
return sRecordType;
end
function handleCurrencyTransfer(msgOOB)
local nodeTargetRecord = DB.findNode(msgOOB.sTarget);
if not nodeTargetRecord then
return;
end
local nCurrency = tonumber(msgOOB.nCurrency) or 0;
local sCurrency = msgOOB.sCurrency;
Debug.console(nCurrency, sCurrency);
local sTargetRecordType = ItemManager.getItemSourceType(nodeTargetRecord);
Debug.console(sTargetRecordType);
if sTargetRecordType == "treasureparcel" then
local nodeTargetCoin = nil;
local sCurrencyLower = sCurrency:lower();
for _,vParcelCoin in ipairs(DB.getChildList(nodeTargetRecord, "coinlist")) do
Debug.console(DB.getValue(vParcelCoin, "description", ""):lower());
Debug.console(sCurrencyLower);
if DB.getValue(vParcelCoin, "description", ""):lower() == sCurrencyLower then
nodeTargetCoin = vParcelCoin;
Debug.console(nodeTargetCoin);
end
end
Debug.console(nodeTargetCoin);
if not nodeTargetCoin then
nodeTargetCoin = DB.createChild(DB.createChild(nodeTargetRecord, "coinlist"));
DB.setValue(nodeTargetCoin, "description", "string", sCurrency);
end
DB.setValue(nodeTargetCoin, "amount", "number", nCurrency + DB.getValue(nodeTargetCoin, "amount", 0));
elseif sTargetRecordType == "partysheet" then
local nodeCurrency = nil;
local sCurrencyLower = sCurrency:lower();
for _,vPSCurrency in ipairs(DB.getChildList("partysheet.treasureparcelcoinlist")) do
if DB.getValue(vPSCurrency, "description", ""):lower() == sCurrencyLower then
nodeCurrency = vPSCurrency;
break;
end
end
if nodeCurrency then
DB.setValue(nodeCurrency, "amount", "number", DB.getValue(nodeCurrency, "amount", 0) + nCurrency);
else
nodeCurrency = DB.createChild("partysheet.treasureparcelcoinlist");
DB.setValue(nodeCurrency, "description", "string", sCurrency);
DB.setValue(nodeCurrency, "amount", "number", nCurrency);
end
elseif ItemManager.doesRecordTypeHaveCurrency(sTargetReco rdType) then
CurrencyManager.addActorCurrency(nodeTargetRecord, sCurrency, nCurrency);
end
end
I have everything working now. But I REALLY REALLY don't want to have a hardcoded copy override of ItemManager.handleCurrencyTransfer just to correct this.
I'm hoping for a fix here so I can delete this out of my TEST code.
Moon Wizard
July 22nd, 2024, 05:53
I added an getter/setter for currency name field used for each record type; and set the currency name field for "treasureparcel" to "description". This should fix the issue with handleCurrencyTransfer for treasure parcels.
Also, I added some more code in ItemManager/RecordDataManager to reach into CT and determine record type there.
Regards,
JPG
SilentRuin
July 22nd, 2024, 07:59
I added an getter/setter for currency name field used for each record type; and set the currency name field for "treasureparcel" to "description". This should fix the issue with handleCurrencyTransfer for treasure parcels.
Also, I added some more code in ItemManager/RecordDataManager to reach into CT and determine record type there.
Regards,
JPG
That did fix the issue with handleCurrencyTransfer and I was able to remove my override. My main goal here.
Not sure what the changes you mentioned for reaching into the CT were though - as I still need this override to interpret source types for NPC/VEHICLE CT nodes (needed to resolve new checks added into TEST for bCurrency etc.)... Which is fine. I'm good to go with this override and am OK with it. Just mentioning it in case you thought you did something to resolve it.
savegetRecordTypeFromListPath = RecordDataManager.getRecordTypeFromListPath;
RecordDataManager.getRecordTypeFromListPath = getRecordTypeFromListPath;
-- insure combattracker entries can return record type
function getRecordTypeFromListPath(sListPath)
local sRecordType = savegetRecordTypeFromListPath(sListPath);
if sRecordType == "" and StringManager.startsWith(sListPath, "combattracker") then
local nodeCT = DB.findNode(sListPath);
if nodeCT then
sRecordType, _ = DB.getValue(nodeCT, "link", "npc", "");
end
end
return sRecordType;
end
Moon Wizard
July 22nd, 2024, 17:17
That's exactly what I'm talking about. Look at ItemManager.getItemSourceType and RecordDataManager.getRecordTypeFromRecordPath additions around CT record handling. I don't think you'll need that override anymore either, but wanted to make sure.
Regards,
JPG
SilentRuin
July 22nd, 2024, 18:05
That's exactly what I'm talking about. Look at ItemManager.getItemSourceType and RecordDataManager.getRecordTypeFromRecordPath additions around CT record handling. I don't think you'll need that override anymore either, but wanted to make sure.
Regards,
JPG
Still need that override - which is fine. I'm delivering my Map Parcel extension fixes to TEST today sometime so all is good - all is in working order.
If your curious why its still needed - the following code has a Debug.printstack and Debug.console print to show you that it still requires the fix (comes back with sRecordType of "")...
-- insure combattracker entries can return record type
function getRecordTypeFromListPath(sListPath)
local sRecordType = savegetRecordTypeFromListPath(sListPath);
if sRecordType == "" and StringManager.startsWith(sListPath, "combattracker") then
Debug.printstack();
Debug.console(sListPath);
local nodeCT = DB.findNode(sListPath);
if nodeCT then
sRecordType, _ = DB.getValue(nodeCT, "link", "npc", "");
end
end
return sRecordType;
end
There are several different stacks calls that require it but I think I only need show the one... This is triggered from a drag drop of a treasureparcel sheet link (upper left) dropped onto an NPC inventory tab sheet.
[7/22/2024 11:59:18 AM]
stack traceback:
[string "MapParcel:scripts/manager_mapparcel.lua"]:1929: in function 'getRecordTypeFromListPath'
[string "CoreRPG:scripts/manager_record_data.lua"]:415: in function 'getRecordTypeFromRecordPath'
[string "CoreRPG:scripts/manager_item.lua"]:258: in function 'savegetItemSourceType'
[string "MapParcel:scripts/manager_mapparcel.lua"]:202: in function 'getItemSourceType'
[string "MapParcel:scripts/manager_mapparcel.lua"]:464: in function 'addItemToList'
[string "CoreRPG:scripts/manager_item.lua"]:628: in function 'fHandler'
[string "CoreRPG:scripts/manager_oob.lua"]:28: in function <[string "CoreRPG:scripts/manager_oob.lua"]:20>
[C]: in function 'deliverOOBMessage'
[string "MapParcel:scripts/manager_mapparcel.lua"]:370: in function 'sendItemTransfer'
[string "CoreRPG:scripts/manager_item.lua"]:484: in function 'handleItem'
[string "MapParcel:scripts/manager_mapparcel.lua"]:387: in function 'fHandler'
[string "CoreRPG:scripts/manager_oob.lua"]:28: in function <[string "CoreRPG:scripts/manager_oob.lua"]:20>
[C]: in function 'deliverOOBMessage'
[string "CoreRPG:scripts/manager_item.lua"]:1008: in function 'sendParcelTransfer'
[string "CoreRPG:scripts/manager_item.lua"]:515: in function 'handleParcel'
[string "MapParcel:scripts/manager_mapparcel.lua"]:328: in function <[string "MapParcel:scripts/manager_mapparcel.lua"]:265>
(tail call): ?
[7/22/2024 11:59:18 AM] s'combattracker.list.id-00028'
If it was not required it would have never triggered the debug outputs. But as I said - I'm good with this as it is and will be delivering this override along with my other fixes for Map Parcel Extension. All is good as far as I'm concerned in TEST. At least as far as I know.
Moon Wizard
July 22nd, 2024, 18:15
Actually it would still trigger; because your override goes before the checks I added.
Regards,
JPG
SilentRuin
July 22nd, 2024, 18:41
Actually it would still trigger; because your override goes before the checks I added.
Regards,
JPG
Unless some update snuck in, I'm pretty sure I tried removing my override after you said you added new CT checks and removing this override causes my stuff fail. As per debug dump the node received that did not work without override was "combattracker.list.id-00028" so if your successfully getting a record type for that I'm at a loss to know why I still require my override. Not really going to worry about it now as its all working again per video dropped in grim press discord (not appropriate for it to be in here) - if you wanted to see what I was actually doing in terms of drag/drop data transfers (move not copy) between sheets.
Moon Wizard
July 23rd, 2024, 01:39
The version I set up would require that the record type of the CT entry be one that supports inventory according to the "bInventory" flag on the record data. But, I did test that specific setting by turning on inventory in Core for NPCs in the combat tracker (without any supporting UI) just to test that scenario.
Regards,
JPG
SilentRuin
July 23rd, 2024, 16:04
The version I set up would require that the record type of the CT entry be one that supports inventory according to the "bInventory" flag on the record data. But, I did test that specific setting by turning on inventory in Core for NPCs in the combat tracker (without any supporting UI) just to test that scenario.
Regards,
JPG
As I've already told you I do set those flags:
RecordDataManager.setRecordTypeOption("npc", "bInventory", true);
RecordDataManager.setRecordTypeOption("npc", "bCurrency", true);
RecordDataManager.setRecordTypeOption("vehicle", "bInventory", true);
RecordDataManager.setRecordTypeOption("vehicle", "bCurrency", true);
I can guarantee you (just verified) that if I remove my override and I drag the NPC sheet link (upper left) into the map parcel (treasure parcel) it will not delete the data from the NPC sheet (i.e. copies instead of moves). This is because it does not recognize the record type.
In any case, with my override it works - and its delivered and works. For me I'm done with it. FYI that function is called in numerous places also. Not just the one you overrode.
Moon Wizard
July 23rd, 2024, 18:06
By default, items are not "transferred" when moved from actors or partysheet to parcels but "copied", by design.
Parcels are generally designed to be groups of items to transfer in one link; not as containers for transferring stuff in/out of.
For the long term; you might be better off making a new "record type" for these "container" objects, instead of trying to override parcels. Or maybe re-use vehicles.
Regards,
JPG
SilentRuin
July 23rd, 2024, 18:18
By default, items are not "transferred" when moved from actors or partysheet to parcels but "copied", by design.
Parcels are generally designed to be groups of items to transfer in one link; not as containers for transferring stuff in/out of.
For the long term; you might be better off making a new "record type" for these "container" objects, instead of trying to override parcels. Or maybe re-use vehicles.
Regards,
JPG
Don't be silly. Extensions are to do things you do not and to make the code more flexible in order to do things you have not thought of. My solution is simple - minimal code changes - and worked for years. Nothing should be "copied" when transferring inventory between sheets or map parcels - it defeats the point of it all. Since its obvious you don't know what I'm doing I'll add this video here after all - there is no case where I do not want inventory data moved in the examples I give in video.
Next you'll be telling me something crazy like players should be able to cheat and see/target things in CT that they cannot see in map due to LOS or token visibility, denying a whole range of game play. Or that players should be able to have clairvoyance and plan on who goes when next turn because the init has not been randomized every turn.
Bat guano crazy stuff, which I would never allow in my games. Gist being - you limit your code your ways - I'll expand it my way - why I like FGU - it lets me make the game sane and curtail the insanity :)
https://www.youtube.com/watch?v=UaQ3XECqQ3Y
deer_buster
July 24th, 2024, 13:49
Don't be silly. Extensions are to do things you do not and to make the code more flexible in order to do things you have not thought of. My solution is simple - minimal code changes - and worked for years. Nothing should be "copied" when transferring inventory between sheets or map parcels - it defeats the point of it all. Since its obvious you don't know what I'm doing I'll add this video here after all - there is no case where I do not want inventory data moved in the examples I give in video.
Next you'll be telling me something crazy like players should be able to cheat and see/target things in CT that they cannot see in map due to LOS or token visibility, denying a whole range of game play. Or that players should be able to have clairvoyance and plan on who goes when next turn because the init has not been randomized every turn.
Bat guano crazy stuff, which I would never allow in my games. Gist being - you limit your code your ways - I'll expand it my way - why I like FGU - it lets me make the game sane and curtail the insanity :)
https://www.youtube.com/watch?v=UaQ3XECqQ3Y
Just watched your video...holy ****, that should be base functionality for EVERY ruleset....why the hell isn't it? Good stuff man!
SilentRuin
July 24th, 2024, 18:23
Just watched your video...holy ****, that should be base functionality for EVERY ruleset....why the hell isn't it? Good stuff man!
Personally I'd like to lock all the SW devs in a room and make them get demos for all extensions with hundreds of Forge users and do a review of the code so they knew what was actually going on outside their code base and why it was being done.
But its a foolish dream I know will never happen.
So to answer your question - I find it highly unlikely any of my stuff will be part of the 5E ruleset (or any other though I only deal with 5E myself). Its hacked code to the standard of "good enough" which does not strive for perfection - only functionality. Still other things like AURA and BCEG I find surprising are not incorporated into the code base. Likely because SW devs have not been forced into that locked "extension indoctrination" room for those ;)
MrDDT
July 24th, 2024, 18:41
Just watched your video...holy ****, that should be base functionality for EVERY ruleset....why the hell isn't it? Good stuff man!
Yeah its pretty awesome but also you have to be mindful of where issues are. But it's really pretty and nice. That's how I play.
Moon Wizard
July 24th, 2024, 23:50
A fix for the initial alpha of text widgets (such as tabs) has been addressed in the most recent release.
Regards,
JPG
SilentRuin
July 26th, 2024, 22:37
Ka-BOOM!
Something in latest update a death blow?
Script execution error: [string "CoreRPG:scripts/manager_dice_roll.lua"]:40: attempt to index field 'colordicerolls' (a nil value)
Moon Wizard
July 26th, 2024, 23:14
Just pushed fix.
Regards,
JPG
SilentRuin
July 26th, 2024, 23:20
Just pushed fix.
Regards,
JPG
That fixed it.
Egheal
August 2nd, 2024, 10:29
Major improvement here concerning the perceived modernisation of the UI. Thanks a lot for that.
One minor feedback concerning the Core Theme: When the character sheet is placed on a white document it merge with it, and seems incomplete. Perhaps you can trace a fine black line around the edges?
61436
Jiminimonka
August 2nd, 2024, 10:33
I don't mind that, but if it cast a shadow around the edges it might help. A thin line might get lost at different UI scales.
BadEye
August 3rd, 2024, 00:36
When the character sheet is placed on a white document it merge with it, and seems incomplete. Perhaps you can trace a fine black line around the edges?
61436
Yeah, good call there - we've got an adjustment queued up for an upcoming build.
Moon Wizard
August 6th, 2024, 21:33
Some minor changes to image/token/portrait asset behaviors:
[CoreRPG+] Clicking Picture tab fields for picture/token will open Asset Preview window.
[CoreRPG+] Clicking asset on hot key bar will open Asset Preview window.
[CoreRPG+] Dragging asset to chat window will share with players (host) or open Asset Preview (player).
[CoreRPG+] Dragging Asset view window picture will drag direct asset reference.
[CoreRPG+] Changing Assets window view type would not update next/prev page buttons. Fixed.
[CoreRPG+] Attempting to delete a Shared Asset via button would sometimes open shared asset instead. Fixed.
Regards,
JPG
Amerisun
August 11th, 2024, 19:21
In Call of Cthulhu 7e, I went ahead and loaded it up to try out the new stuff (I notice things load faster, or at least feel like they do. :-)), and I have an MoN campaign going on right now; I'm excited about the changes coming, and I saw the buttons are tough to read and might need some color adjustment for that theme?
Also, no extensions or themes are loaded. I had the same problem when I loaded the Pulp Cthulhu Theme, but I could see no issues with the Masks theme.
61495
Moon Wizard
August 12th, 2024, 16:15
Thanks for reporting. Just pushed new updates for those to use an older Core version of the button with the correct button font coloring for both CoC6 and CoC7 base themes.
Regards,
JPG
fabiocm
August 20th, 2024, 04:48
The new Core-Dark theme is really nice for the eyes at night :D
However, I had some contrast issues while reading the Pathfinder books. See:
61654
Some texts are white over a pale background.
BadEye
August 20th, 2024, 04:51
The new Core-Dark theme is really nice for the eyes at night :D
However, I had some contrast issues while reading the Pathfinder books. See:
61654
The Pathfinder frames will be handled for the Core - Dark theme in our next update in the next day or two.
Amerisun
August 20th, 2024, 17:42
I noticed the Alien ruleset also has some issues, specifically with tabs that are difficult to read, such as those on character sheets, stories, etc.
61662
Trenloe
August 20th, 2024, 18:05
I noticed the Alien ruleset also has some issues, specifically with tabs that are difficult to read, such as those on character sheets, stories, etc.
61662
These changes have been live from August 13th. The Laboratory forum is for reporting issues with the beta test channel. Please report any issues with the live environment in the House of Healing or ruleset specific forums. Thanks.
Moon Wizard
August 20th, 2024, 19:18
I'll get a fix pushed out with the Tuesday updates today. As @Trenloe mentioned, this is all Live now; and any reports should go in the main House of Healing forum.
Regards,
JPG
Powered by vBulletin® Version 4.2.1 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.