FG Spreadshirt Swag
  1. #1

    Developer Notes - 2023-06 Ruleset Updates

    We are continuing to work on general ruleset updates. See the main ruleset beta thread for the summary of the updates.

    In order to support ruleset and extension developers, I have made a number of notes regarding changes that should be made to bring rulesets and extensions in-line with changes to ones we directly maintain.

    NOTE: I've only documented the specific rulesets affected for rulesets sold in the FG store or installed by default. Any updates for rulesets/extensions provided via FG Forge or other sources will need to look at the notes below for suggested updates.


  2. #2
    Ruleset/Extension - Suggested Maintenance Updates (From New Updates)

    NOTE: This ruleset update is part of a larger push to standardize UI frames and fields for consistency for users, as well as making theming for ruleset creation and extensions much easier long term. Wiki article to come once I have more time.

    * Frame Usage Guidance
    xxxxxutilitybox = Tools, Options/Settings, Dialogs
    xxxxxtokenbag = Assets, Graphic Selection
    xxxxxfieldlight (or no frame) = static number/string fields
    xxxxxfielddark = editable number/string fields
    xxxxx(Future guidance to come as other window types are targeted)

    * Consolidate utilitybox/tokenbag frame usage and layout
    xxxxxMigrate utilitybox2/utilitybox3 to utilitybox (or other relevant frame, such as recordsheet, etc.)
    xxxxxxxxxxSDL, SW
    xxxxxRemove calendar/utilitybox2/utilitybox3 frame definitions and graphics; as well as help_*/close_*/resize_* templates
    xxxxxxxxxxPF2, SDL, SW
    xxxxxUse new anchoring templates for any windows defined using utilitybox frame (including ones from item above)
    xxxxxxxxxxMigrate from anchor_title_utilitybox -> anchor_content_utilitybox_top/anchor_content_utilitybox_bottom
    xxxxxxxxxxUse new templates in CoreRPG:layout:template_* files. (Lots of examples in CoreRPG, 5E, 4E, 3.5E)
    xxxxxxxxxxxxxxxSDL, SW
    xxxxxUpdate anchor templates as needed for utilitybox/tokenbag (if frames or windowtitle updated by ruleset/extension)
    xxxxxxxxxx(i.e. anchor_content_utilitybox_top/anchor_content_utilitybox_bottom)
    xxxxxxxxxx(i.e. anchor_content_tokenbag_top/anchor_content_tokenbag_bottom)
    xxxxxxxxxx(Note: Already defined in all official themes)
    xxxxxxxxxxxxxxxSDL, PF2, SW

    * Replace deprecated templates (or copy to ruleset locally)
    xxxxxtemplate: anchor_campaign
    xxxxxtemplate: anchor_campaign2
    xxxxxtemplate: filter_campaign
    xxxxxtemplate: filter_utility
    xxxxxtemplate: anchor_title_utilitybox (Migrate to anchor_content_utilitybox_top)
    xxxxxtemplate: anchor_title_utilitybox3 (Migrate to anchor_content_utilitybox_top)
    xxxxxtemplate: anchor_bottom_utilitybox3 (Migrate to anchor_content_utilitybox_bottom)
    xxxxxtemplate: close_utilitybox3 (Migrate to close_utilitybox)
    xxxxxxxxxxPF2, SW
    xxxxxtemplate: resize_utilitybox3 (Migrate to resize_utilitybox)
    xxxxxtemplate: helper_effects (Migrate to help_utilitybox; Add window.helplinkres)

    * Add specific ruleset sound trigger support
    xxxxxAll sound triggers are based on regular expression matching
    xxxxxRuleset sound triggers also pre-baked expressions to match for specific action types
    xxxxxSee CoreRPG:SoundSetManager global script, lines 40-115, for examples
    xxxxxSeveral official rulesets we are supporting directly already handled here (5E, 4E, 3.5E, ...)

    * Remove Debug code from release
    xxxxxRemove print calls (use ChatManager.SystemMessage)
    xxxxxRemove printstack and Debug.printstack calls (not for release code)
    xxxxxRemove debugging output from release code (Debug.chat, Debug.console; Use ChatManager.SystemMessage or remove)

    * Other notes
    xxxxxUse new "button_text_toggle" template when defining toggle-able buttons using buttonup/buttondown frames
    xxxxx"helper_<topic>" templates being replaced with "help_<frame>" templates and window.helplinkres tag
    xxxxxRecordShareManager global script added to support simple chat text output of records
    xxxxxxxxxx(see 5E for examples of records using button_ichat template in headers, as well as RecordShareManager5E script)
    xxxxxDesktopManager.setSidebar* -> ColorManager.setSidebar* long term migration
    Last edited by Moon Wizard; June 27th, 2023 at 22:06.

  3. #3
    Ruleset/Extension - Suggested Maintenance Updates (From Previous Updates)

    * Reminders
    xxxxxUse DB over databasenode API calls
    xxxxxUse DB.getChildList over DB/databasenode.getChildren calls when you don't need the node key name.

    * Portraits
    xxxxxIncrease portrait size to 100x100; Remove mini portrait definition/graphics
    xxxxxRemove unneeded overrides
    xxxxxxxxxxSDL (Script - CharacterListManagerSDL; portraitset - charlist; panel - chat)
    xxxxxRemove unneeded portraitset redefinition

    * Finish CT standard component migration (toggles, sections, ...)

    * Actions tab generalization
    xxxxx(See examples in 5E/4E/3.5E using CoreRPG base objects.)
    xxxxx(See migrated to Core section for 5E/4E/3.5E to see what objects have been removed when generalized.)

    * Templates
    xxxxxtemplate: windowtitlebar_char -> windowtitlebar_charsheethelper (when using charsheethelper window frame)

    * Remove unused code
    xxxxxIcon: footer_narrow (Remove definition/graphic; no longer used)
    xxxxxtemplate: anchor_title_charsheethelper (remove duplicate of CoreRPG)
    xxxxxtemplate: button_toggledetail (remove duplicate of CoreRPG)
    xxxxxFrame: campaignlistwithtabs (Remove definition/graphic; no longer used)

    * Other specific suggestions
    xxxxxMigrate ct_entry.lua:delete to use CombatManager.deleteCombatant (or inherit)
    xxxxxMigrate ct_menu.lua:clearNPCs to CombatManager.deleteFaction/deleteNonFaction
    xxxxxfont: reference-subtitle (migrate to sheetlabel; Remove font definition)
    xxxxxReview template:list_charinv and script:char_invlist.lua usage for simplification
    xxxxxxxxxx(Move char sheet updates to CharManager, in case character sheet not open during PS distribution)
    xxxxxxxxxxxxxxxPF2, SDL

    * Other general suggestions
    xxxxxMigrate individual updateControl functions -> WindowManager.callSafeControlUpdate(self, sControl, bReadOnly, bForceHide)
    xxxxxReview alternate button_iedit/button_idelete/spacer_header_idelete implementation
    xxxxxxxxxxxxxxxCalls onEditModeChanged function (if defined) for all <edittarget> tags (or window, if no tag)
    xxxxxxxxxxxxxxxThen, cascades to all children
    xxxxxxxxxxxxxxxChecks all parent windows for control named in <editmode> tag for numerical value == 1
    xxxxxxxxxxxxxxxChecks all parent windows for control named in <editmode> tag for numerical value == 1
    xxxxxConvert multiple concatenated strings into single string.format call
    Last edited by Moon Wizard; June 4th, 2023 at 22:32.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
Starfinder Playlist

Log in

Log in