Skip to content

Releases: richardwilkes/gcs

v5.51.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 21:03
7ea6436

New & Improved

  • The calculators have been gathered into a single Calculators view with a tab for each, opened from View → Calculators or from the calculator button on a character sheet's toolbar. New tabs cover Explosions & Area Attacks (B413-B415), Scatter (B414), Demolition (B415), and Collisions & Falls (B430-B432). The Jumping, Throwing and Hiking calculators can take their inputs from any open character sheet or from values you type in, follow the extra effort rules more closely (B356-B357), and explain the rolls and their consequences. Hiking also works out the day's FP cost hour by hour (B426), including the slowdown and collapse of a tired hiker, a rest halfway through the day (B427), and the effects of Fit, Very Fit (B55) and Recover Energy (B248).
  • You can now choose how many decimal places the character sheet shows for the height and weight in the Description block, for equipment weights, and for equipment values. Each has its own setting under Decimal Places in the sheet settings, from "As Needed" (every decimal place the value has, as before) down to whole numbers, plus an option to pad with trailing zeros so that columns line up. Only the display changes: values are still stored and calculated at full precision, hovering over a rounded equipment weight, value or total shows the exact figure, and clicking into the height or weight field shows the exact value for editing. Templates and loot sheets follow the equipment settings in the default sheet settings. PDF and image exports and printing show the sheet as it is displayed, while the detail editors, library lists and text template exports continue to show full precision. (#1070)
  • The damage type that a DR feature applies against can now use a substitution marker, such as "@damage Type@", so a trait or modifier from a library can ask which damage type it should protect against when you add it. (#1017)
  • A new "Multiply cost by level" checkbox in the trait modifier editor, on by default, controls whether a leveled modifier's cost adjustment is multiplied by its level. Turn it off and the cost adjustment is applied once, while any per-level features the modifier carries still scale with the level. That lets a "Limited, -40%" limitation on Damage Resistance 3 remove the DR against everything and grant DR against a chosen damage type instead, with the -40% charged once rather than once per level, so the trait costs 9 points rather than 3. (#1017)
  • A new ancestry editor, opened from File → New Ancestry, builds the ancestry files that drive the random name, gender, age, height, weight, hair, eye, skin and handedness choices on a character sheet. Give the ancestry a name, fill in the common options, and add gender-specific overrides; every change can be undone. The editor's toolbar menu opens any ancestry from your libraries or from a file elsewhere, several can be open at once, and Save writes back to the file you opened. A new ancestry is saved into your User Library's Settings/Ancestries folder by default, where it takes precedence over an ancestry of the same name from the Master Library or built into GCS. Ancestry and name generator files can also be opened with File → Open, from the recent files list, or by dropping them onto the window. (#607)
  • A new name generator editor, opened from File → New Name Generator, edits the .names files that ancestries draw their random names from. Choose how names are generated: Simple picks one of the training names at random, Markov Letter and Markov Run build new names letter by letter or from runs of vowels and consonants, and Compound joins the results of several generators with a separator. You can also choose whether training names are lowercased and results capitalized, and edit the training names themselves, with optional weights. Names can be imported from a text file, one per line, and selected rows can be removed together. Sample names from the current definition are shown as you edit. Each name generator listed in the ancestry editor has a button that opens it for editing. (#607)
  • Scripts can now read three more fields of the entity object: otherEquipment, the equipment not currently carried, and wealthCarried and wealthNotCarried, the total value of the carried and the other equipment.

Bug Fixes

  • GCS now uses hardware-accelerated graphics on some Windows ARM64 systems where it previously had to fall back to slower software rendering.

v5.50.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 03:07
5edb95b

New & Improved

  • Hovering over an attribute's name or value on the character sheet now shows where its bonuses come from, listing each source and its amount. Strength bonuses that apply only to striking, lifting or throwing are listed separately.
  • Spell prerequisites can now require a particular power source, so spells from another power source no longer count toward them (per B77). A new spell prerequisite defaults to the same power source as the spell being edited, but you can choose "is anything" to accept any power source, or type in a specific one. Prerequisites in existing files are unchanged until you explicitly change them.
  • Skill and weapon defaults can now match by tag. Alongside the name and specialization, a default can name a tag, so Stage Combat can default to whichever combat skill the character actually has at -3 instead of listing each one. Existing files are unchanged until you fill in a tag.
  • A skill with points in it keeps using the default it has been using rather than silently switching to another one. Changing its list of defaults, whether by editing them or by syncing from the library, now picks the best default afresh.
  • Dropping a modifier onto one of several selected traits or equipment items now adds it to all of them. Every item that will receive it is highlighted while you drag, and a single undo removes it from all of them again. If the modifier has substitutions to fill in, the prompt says which item each copy belongs to. Dropping onto an item that isn't part of the selection still affects only that item. (#1096)
  • Toggle State and its shortcut now work inside the detail editors. Select any number of trait or equipment modifiers to turn them on or off, or any number of melee or ranged weapons to hide or show them, and the whole selection changes at once and can be undone in one step. The command is also in the right-click menu of those lists. (#1074)
  • Items in any list that can be rearranged by dragging can now be rearranged from the keyboard. Move Up and Move Down shift the selected items one place among their neighbors, Move Out of Container lifts them out of their container to sit just above it, and Move Into Container places them at the top of the container directly below them, opening it if it was closed. Items selected together keep their order, and a selection spread across several containers moves within each of them. The commands are in the Edit menu and the right-click menu, bound to Shift-Command-Arrow on macOS and Shift-Ctrl-Arrow elsewhere, and can be rebound in the Menu Keys settings. (#1076)
  • Alternative Abilities containers can now have more than one slot. A new Alternative Slots field in the trait editor sets how many of the container's abilities can be in use at the same time. That many of the most expensive abilities are charged at full cost and the rest at 20%. A container with more than one slot shows the count in the traits list, such as "Alternate x2". Existing containers have one slot, so their costs are unchanged. (#1125)

Bug Fixes

  • Bonuses granted by a trait modifier are now attributed to both the trait and the modifier in tooltips, as bonuses from equipment modifiers already were.
  • The tooltip for a per-level weapon bonus attached to a trait modifier now reports the same amount the weapon actually receives, rather than an amount based on the trait's level.
  • Copying items from a library or template into a character sheet, loot sheet or template now prompts for modifier choices and substitutions again. Applying a template was not affected. (#1126)
  • Dialogs now open focused and ready for the keyboard. On Windows, and sometimes on macOS, a dialog opened from a menu or a toolbar button could come up without keyboard focus, so Enter and Escape did nothing until it had been clicked on first. (#1124)
  • Fixed a crash on macOS that could happen as soon as the first window opened, seen on an Intel Mac running macOS 26.2.

v5.49.0

Choose a tag to compare

@github-actions github-actions released this 31 Aug 23:55
82a555d

New & Improved

  • The arrangement of the blocks on a character sheet is now edited directly on the sheet. Click the new Edit Layout button in the sheet's toolbar (or choose View ▸ Edit Sheet Layout) to switch into layout editing, where you can:

    • Drag any block -- the portrait, identity, attributes, body type, the lists, and so on -- to place it beside, above, or below another block, or drop it onto the seam between two blocks to sit alongside both of them.
    • Drag the divider between side-by-side blocks to change how the width is shared between them.
    • Drag a block's bottom edge to give it a minimum height.
    • Click the × in a block's top right corner to hide it. The portrait has a second button beside the × that makes its picture area square.
    • Right-click a block for a menu with these same commands.

    Layout changes can be undone and redone like any other edit to the sheet, and pressing Escape abandons a drag in progress. The menu button beside the Edit Layout button holds the remaining layout commands: bringing hidden blocks back, resetting the sheet to the default layout, making the current sheet's layout the default for new sheets, and restoring the default layout to its factory arrangement.

  • Because the layout is now edited on the sheet itself, the "Block Layout" text setting has been removed from Sheet Settings. Existing sheets keep the arrangement they had.

  • The portrait block can now be any shape the layout gives it. The picture is drawn in the largest square that fits, centered within the block.

  • When printing or exporting a sheet, a block that doesn't fit in the space left on a page is now moved whole to the next page rather than being cut in two. Lists are still split across pages as before, and blocks that sit side by side stay together.

  • The new Edit ▸ Organize Traits command, available on character sheets, templates and trait library lists, files each top-level trait that isn't already a container into an Advantages, Perks, Disadvantages, Quirks, Features or Languages container, creating any that don't exist yet, placing them at the top of the list in that order, and sorting their contents by name. A trait tagged with one of these categories goes into that container; anything else is placed by its point cost. Any of these containers left empty afterward is removed. The whole rearrangement is a single undoable step, and the command is also available from the traits list's context menu. On a trait library list it is disabled while the content filter is in use.

  • General Settings has two new options, "Check for GCS Updates" and "Check for Library Updates". Each can be set to check at launch (the default, and what GCS has always done), at launch and every hour, at launch and every day, or never. Turning a check on from never runs it right away, and Help ▸ Check for GCS updates and the Library Explorer's update buttons still work no matter how these are set.

  • When a check finds a newer version of GCS, a pulsing "Software Update Available" button now appears in the Library Explorer's toolbar. Click it to read the release notes and install the update. The update window opens on its own only the first time a given release is seen -- after that, just the button appears -- and Help ▸ Check for GCS updates always opens it.

  • Substitution placeholders can now offer a list of choices to pick from and say whether an empty or free-form entry is allowed. In the "Provide substitutions" dialog, each placeholder starts out as «not set» until you choose or enter a value. See the User Guide for more details.

  • Searching the Library Explorer with deep search enabled is now much faster, and an active search's results refresh automatically as files change on disk.

Bug Fixes

  • The version numbers shown for libraries in the Library Explorer no longer depend on an update check having been made.
  • Setting an optional specialization on a skill that came from a library no longer makes the skill show as modified from its source, and Sync with Source (or the sheet's sync-all button) no longer wipes the optional specialization out.

v5.48.0

Choose a tag to compare

@github-actions github-actions released this 24 Aug 20:27
1794733

New & Improved

  • Text in PDF documents can now be selected by dragging and copied with Edit ▸ Copy. Hold Option/Alt while dragging to
    pan the page, as a plain drag used to do. You may also right-click-drag to pan the page.
  • Search matches in PDF documents are now marked with an underline in the warning color, so that they can be told
    apart from selected text. Searching no longer re-renders the pages, either: the matches are found in the page's text
    and update as you type, so the pages stay on screen instead of being redrawn with every keystroke.

Bug Fixes

  • Opening a PDF, for example by clicking a page reference, no longer crashes on older computers whose processors lack
    AVX2 support, such as Intel 2nd/3rd-generation Core (Sandy Bridge, Ivy Bridge) and AMD FX / A-series CPUs.
  • Changes made to the Choices settings of a trait, skill, or spell container (used by templates to let the player pick
    from among the container's contents) were inadvertently discarded when the editor was applied. They are now saved.

v5.47.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 18:32
68deee2

New & Improved

  • The PDF viewer now uses the page labels embedded in a PDF, so pages are identified by the numbering printed in the
    book itself rather than by counting pages in the file. The page field in the toolbar shows and accepts these labels,
    including non-numeric ones such as iv for the fourth page of frontmatter. If you had set a page offset for a PDF to
    compensate for covers or frontmatter, you may need to reset it to 0, since the page labels already account for those
    pages.
  • Page references may now use non-numeric page labels. When one is used, a colon must separate the reference key
    from the label: to reference page iv of the Basic Set, use B:iv. References that already include a colon, such as
    the Pyramid references (e.g. PY104:12), work as they always have — do not add a second colon.
  • Page references of B338 and higher refer to material in Basic Set: Campaigns, the second of the two volumes the
    Basic Set was published as, and are now automatically redirected to the BX reference key. Previously, these
    references only opened for those who had combined the two volumes into a single PDF mapped to the B key; now they
    work with the volumes kept as separate PDFs. If you use a single PDF instead — whether a combined PDF of the two
    volumes or the new single-volume Basic Set Revised, which keeps the same page numbering for the same content — map
    the BX key to it as well as the B key. (#1098)
  • Features can now be marked as "switchable". A switchable feature only takes effect while the switch of the trait,
    skill, spell, or equipment it belongs to is on. The switch is per item (a modifier's switchable features follow the
    switch of the item the modifier belongs to) and can be toggled from a new column that appears on the character sheet
    lists when any item in the list has switchable features, or from the item's editor. A trait or equipment container can
    have a switch of its own; hold down the Option/Alt key when clicking that switch to also apply the change to
    everything contained within it. Skill and spell containers never have a switch, since a container's own features
    don't apply.
  • Spells can now have features, just like traits, skills and equipment. As a side effect, weapons attached to a spell
    now receive any "this weapon" bonuses defined by the spell's own features.
  • Adding an item to a template now prompts for its modifier selections and name substitutions, just as adding it to a
    character sheet does. (#1101)
  • Items in a template can now be marked "Preconfigured" with a new checkbox in their editors. When a preconfigured item
    is added to a character, the prompts for modifier selections and name substitutions are skipped, since you already
    answered them while building the template. Trait and equipment containers can be preconfigured as well; the flag is
    cleared automatically when an item is copied anywhere other than a template. (#1102)
  • Attribute pools can now be hidden, just like primary and secondary attributes. (#1103)
  • The PDF viewer displays pages faster. The graphics libraries GCS is built on now use the vector (SIMD) instructions
    of modern processors for work done on the CPU, and PDF pages are always rendered there, so page display — including
    decoding the images inside a PDF — speeds up for everyone. Normal interface drawing happens on the GPU and is
    unaffected, but when GCS has to fall back to CPU rendering because working OpenGL support isn't available, that path
    is now much faster as well: fills and gradients render 40–60% faster, blurs up to 27x faster, and the screen update
    step on Windows and Linux has been sped up too. On older Intel/AMD processors that lack AVX2 support, GCS
    automatically falls back to the previous code; the rendered output is identical either way.

Bug Fixes

  • The equipped property of equipment in scripts now reports false for items in the Other Equipment list, since
    those items don't affect the character no matter what their equipped flag says. The Extended Value and Extended
    Weight previews in the equipment editor answer that property the same way the sheet does, including for a top-level
    row of the Other Equipment list.
  • A "this armor" DR bonus (one that names no hit locations) now covers the locations that the armor's enabled modifiers
    grant DR to, along with those the armor itself grants DR to, whether the "this armor" bonus comes from the armor or
    from one of its modifiers. This can change the DR totals of existing characters whose armor picks up locations from
    its modifiers.
  • The per-hit-location equipment lists produced by the legacy text export (the EQUIPMENT and EQUIPMENT_FORMATTED
    keys of the hit location loop) now include armor whose DR for that location comes from one of its modifiers, which
    the DR reported for the location already accounted for. Each piece of armor is also listed just once, rather than once
    per DR bonus of its own that reaches the location.
  • Right-clicking one of the checkmark columns of the sheet's lists (Equipped, a modifier's enabled state, a weapon's
    hidden state) now selects the row and brings up its context menu, just as right-clicking anywhere else in the row
    does, rather than toggling the checkmark.
  • Equipping or unequipping an item, whether by clicking its Equipped checkmark or with the Toggle Equipped command, now
    brings the Reactions, Conditional Modifiers and weapon lists onto or off of the sheet as the item's contributions
    come and go, rather than leaving them as they were until something else caused the sheet to be rebuilt.
  • A template's equipment list now shows or hides its TL and LC columns as soon as the corresponding sheet settings are
    changed, rather than only after the template is reopened.
  • A character sheet's modification timestamp is now updated by every edit made through its lists, not just some of
    them. Applying changes from an item's editor, deleting or duplicating rows, moving equipment between the carried and
    other equipment lists, converting rows to or from containers, answering a modifier or nameables prompt, swapping
    skill defaults, syncing with library sources, applying a template, and editing the point records all left the
    timestamp unchanged before. Several edits also redrew the sheet two or three times over, which on a sheet with many
    rows made them noticeably slower than they needed to be.
  • Closing an item's editor no longer scrolls the sheet when the row that was edited is still in view. Before, the
    focus was returned to the list in a way that scrolled the entire list into view, which on a sheet with a long list
    could move the row far from where it had been. Now only the edited row is brought into view, and only when it isn't
    already visible.
  • Modifiers now keep their connection to the library item they came from when the trait or equipment item holding them
    is copied to a character sheet or template, so syncing with library sources updates them as well. (#1100)
  • Opening a trait, skill, spell, or equipment editor and clicking Apply no longer silently replaces the hidden
    identifiers of every modifier and weapon within the item. Those identifiers are how GCS matches items to their
    library sources, so an edit that changed nothing could still quietly break later syncs. Duplicating an item of your
    own creation also no longer marks the copy as if it had come from a library. (#1106)
  • Fixed a memory error in the user interface library that could destabilize GCS on Windows when it created cursors or
    the images shown while dragging.

v5.46.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 21:26
0b55161

New & Improved

  • GCS can now install its own updates. When a new version is available, the dialog offers an Install & Restart button that downloads the release built for your system, verifies it, installs it over the copy you are running, and starts the new version -- no visit to the web site necessary. Your existing installation is left exactly as it was unless the download checks out and the new version has been shown to start on your machine. The Download Page button is still there, and is all that is offered when GCS cannot update itself -- an install managed by Homebrew or a Linux package manager, a location it cannot write to, or running straight from the disk image -- along with an explanation of why. (#1094)
  • Crash details are now written to a gcs-crash.log file kept alongside the usual log file. They previously went only to the standard error stream, which is discarded for an application started from the Finder or its equivalent, leaving nothing to work from when a crash was reported. Reports are appended, the file is only created if a crash actually occurs, and it is rotated using the same size and retention settings as the log.
  • Updating a library now shows how far along it is and can be stopped. The progress bar fills as the content is downloaded and again as it is written to disk, and says which of the two it is doing, rather than just shuffling back and forth. Cancel stops an update that is taking longer than you want to wait, leaving the library holding exactly what it held before. Updates also no longer give up after two minutes, which was not long enough to fetch a library the size of the Master Library over a slow connection.

Bug Fixes

  • macOS: Fixed a crash that could occur when dragging, which most often showed up as GCS disappearing without warning while working on a character sheet -- collapsing a container, deleting rows, or seemingly just clicking, since a click with the slightest movement is the start of a drag.

v5.45.2

Choose a tag to compare

@github-actions github-actions released this 13 Aug 20:22
9aa0909

New & Improved

  • Added a way to get GCS running on a machine whose graphics driver won't cooperate. Setting the UNISON_CPU_RENDERING environment variable to 1 before launching makes GCS draw everything with the CPU and never call OpenGL at all. GCS already switches to CPU rendering on its own when the graphics driver reports a failure, but a driver — or third-party software that has hooked one — that hangs instead of failing gives it nothing to react to, and GCS is left stuck with no window ever appearing. This provides a way around that.

Bug Fixes

  • Fixed searching a PDF for a word containing a ligature finding nothing. Many PDFs draw letter pairs such as "fl", "fi", and "ffi" as a single ligature glyph, and GCS treated such a glyph as one unsearchable character rather than the letters it spells, so a search for "Reflect" came up empty while "Refect" matched. This was most visible when clicking a page reference, which jumps to the page and fills in the search field for you: the right page opened, but nothing on it was highlighted. (#1092)
  • Fixed windows coming up blank on Windows when GCS falls back to CPU rendering.
  • Fixed GCS lingering in the background after a startup that never finishes. GCS gives up and quits if its window hasn't appeared within two minutes, but that shutdown waited on the very thing that was stuck, so the process stayed alive and invisible instead. Since it still held the port that later launches hand their file list off to, every attempt to start GCS afterwards quietly exited without showing anything, and the only way out was to kill the leftover process by hand. GCS now forces itself to terminate when the orderly shutdown doesn't complete. The message it writes to the log on the way out also now points at the UNISON_CPU_RENDERING setting described above and names defective graphics drivers, alongside the input device drivers it already mentioned, as a possible cause.

v5.45.1

Choose a tag to compare

@github-actions github-actions released this 11 Aug 00:28
750a3ab

Bug Fixes

  • Fixed keys on non-US keyboard layouts being ignored on Linux. A key whose primary (unshifted) symbol wasn't one GCS
    recognizes produced nothing at all when pressed — no typed character and no menu shortcut. This hit ordinary keys on
    many layouts: on French AZERTY the entire digit row was dead, since those keys report the digits as their shifted
    forms, and on the UK layout the # key next to Enter typed nothing. Such keys now work normally. In addition, switching
    keyboard layouts while GCS is running now takes effect immediately instead of the layout from startup remaining in
    use. (#1087)
  • Fixed missing characters when viewing PDF documents that embed some older fonts, typically ones converted from
    Adobe's original Type 1 font format. Glyphs that used any of several old, but legal, font instruction forms were
    silently dropped, leaving blank gaps in the displayed text — accented characters built by composing a base letter with
    an accent were a common casualty. Such glyphs now draw correctly.

v5.45.0

Choose a tag to compare

@github-actions github-actions released this 09 Aug 21:57
46848da

New & Improved

  • GCS is now built entirely from Go. The window management, drawing, text layout, and PDF generation previously done by
    a bundled native graphics library, and the PDF display previously done by a bundled native PDF library, are now done
    by pure Go replacements, so GCS no longer contains any platform-specific native code. On Linux, only the standard X11
    and OpenGL client libraries (libX11.so.6 and libGL.so.1) are needed at runtime; fontconfig and freetype are no longer
    used. The list of available fonts is now built by scanning the fonts installed on the system directly, so the first
    launch after upgrading may take a moment longer while the font index is built; it is cached for later launches.
  • Added a maximum level to leveled traits, shown alongside the Level and Cost Per Level fields in the trait editor. It
    may be a plain number or a script expression (e.g. one that varies with SM or ST), and the editor displays the
    resolved value. A trait whose level exceeds its maximum is flagged on the character sheet with the same warning used
    for unmet prerequisites, and points are still computed from the actual level. When picking a trait's level while
    applying a template, the maximum is shown and the pickable level is capped to it. A companion "Gives a trait maximum
    level modifier of" feature can raise or lower the maximum without editing the trait's definition (preserving library
    source sync): as with the equipment uses adjustment, a plain number adds, a value ending in % adjusts by a
    percentage, and a value with an x multiplies; it can optionally scale per level, and can apply to the trait it is
    attached to ("to this trait") or to other traits matched by name and tags ("to traits whose name"). Such a feature
    never imposes a maximum on a trait that doesn't have one: a trait with an empty Maximum Level remains unlimited.
    (#1060)
  • Added a new "Sets the value of" feature for replacing a field with a chosen value, rather than adjusting it by a
    number or toggling a flag. Because such a field can hold only one value, these are resolved absolutely instead of
    stacking: when more than one applies to the same field, the one with the highest priority wins, ties are broken in
    favor of the more specific match, and the winning value along with the ones it overrode is shown in the tooltip.
  • Added a new "Gives equipment a maximum uses modifier of" feature for raising or lowering a piece of equipment's
    maximum uses. As with equipment modifier costs, the operation is taken from what you enter: a plain number adds (e.g.
    1 or -1), a value ending in % adjusts by a percentage (e.g. -10%), and a value with an x multiplies (e.g.
    x2). It can optionally scale per level, and can apply to the equipment it is attached to ("to this equipment") or to
    other equipment matched by name and tags ("to equipment whose name"). The resolved maximum is always kept within the
    range 0 to 9,999,999. When such a feature lowers the maximum below a piece of equipment's current remaining uses, the
    remaining uses shown (and adjusted by the uses commands) are now capped at the new maximum; the stored value is left
    untouched until you change it or save the file, at which point it is brought into range. Also added a "Reset Uses to
    Maximum" command alongside the existing "Increase Uses" and "Decrease Uses" commands, available from the menus, the
    equipment context menu, and as an assignable key binding.
  • Added the ability for a hidden attribute to be revealed with a chosen placement (Automatic, Primary, or Secondary)
    whenever the character has a named trait. The attribute settings now show "Placement [Hidden] unless trait [name] is
    present, then [placement]". (#845)
  • Added support for a comma-separated list of tags in a feature's tag qualifier, so a single feature can grant its bonus
    to anything matching any one of the listed tags without stacking (e.g. Sword, Axe, Polearm). This applies to every
    tag-based criteria, including skill, spell, and their point bonuses, weapon bonuses, and equipment prerequisites.
    (#1008)
  • Improved the merging of points for identical skills and spells added to a character sheet, so a matching entry adds
    its points to the existing one rather than creating a duplicate row. This now covers additional cases: entries with a
    tech level, entries whose nameable substitutions are resolved as they are added, duplicate entries within a single
    template, and skills or spells dragged or copied from another character sheet. (#596)
  • The PDF viewer used for page references was rebuilt on the new pure-Go engine. Page display, text search, links, the
    table of contents, and password-protected documents all work as before, and the new engine was developed and tested
    against the old one to keep page layout, search hit positions, and link locations identical. Text is drawn with a
    slightly heavier weight, tuned to match the way macOS Preview renders text, and documents that don't embed their fonts
    now substitute from a font set bundled with GCS rather than using system fonts, so some PDFs may look a little
    different than they did before. Exporting a sheet to PDF goes through the same new machinery, and a failure while
    writing the exported file is now reported instead of silently leaving a truncated file behind.
  • PDFs are now displayed with continuous scrolling: pages are stacked one after another and you scroll straight through
    the document instead of viewing a single page at a time. The page number field, the navigation buttons, and the
    Back/Forward history follow the page currently at the top of the view, pages just outside the view are rendered ahead
    of time so scrolling stays smooth, and search highlights and links work on every visible page rather than only the
    current one.
  • Opening a PDF no longer freezes GCS while the file is read. A large PDF — especially one the operating system has to
    retrieve from cloud storage first — could previously lock up the application for a long time before the view appeared.
    The view now opens immediately and fills in once the document is ready, showing a "Loading…" message if that takes
    more than a moment, and a PDF that can't be opened now reports the failure in the view instead of failing silently. A
    PDF opened in a window of its own also now gets a window sized to show a full page.
  • When a working hardware-accelerated (OpenGL) display isn't available — in a virtual machine, over a remote desktop
    session, or with missing or broken graphics drivers — GCS now falls back to drawing with the processor instead of
    failing to open a window. Drawing is slower this way, but the application runs.
  • Added support for internal anchor links in Markdown. Headings are now automatically assigned anchors, and links to
    them (e.g. [Scripting](#scripting), or page references such as md:User Guide/Scripting Guide#code) scroll the
    target heading to the top of the view, revealing the section it introduces. (#651)
  • Added a "Cursor Size" setting to the General Settings, allowing the size of the mouse cursor to be adjusted. Also
    added two new theme colors to control the foreground and background colors of the cursors. In addition, cursors are
    now drawn from their vector artwork at each display's exact resolution rather than being scaled from a single
    fixed-size image, making them noticeably sharper on Windows systems using a fractional display scale and on non-Retina
    Mac displays.

Bug Fixes

  • Fixed the handling of data files containing a feature or prerequisite type this version of GCS doesn't recognize, such
    as one written by a newer release. Previously, an unrecognized feature was silently loaded as an empty attribute bonus
    and an unrecognized prerequisite as an empty, always-satisfied prerequisite list, and saving the file then wrote those
    replacements back out, permanently destroying the original data. Such entries are now kept exactly as they were read
    and written back out unchanged. They are shown in the editors so you can see they're present (and delete them if you
    want to), an unrecognized feature has no effect, and an unrecognized prerequisite is reported as unsatisfied rather
    than being quietly treated as met.
  • Fixed crashes caused by data files that contain a null entry where real data is expected, as can happen with
    hand-edited or damaged files. A null among the attributes or attribute definitions of a character sheet, template,
    loot sheet, or attribute settings file, in a skill's "Defaults To" list, or in an ancestry's hair, eye color, skin, or
    handedness options crashed GCS when the file was read or used (for the ancestry lists, when randomizing those fields
    or creating a new sheet). A null among the settings file's libraries or page reference mappings crashed GCS during
    startup, before the normal damaged-settings recovery could step in, and one among its remembered Library Explorer,
    column-width, or PDF entries crashed GCS while quitting, silently discarding every settings change made during the
    session. Such entries are now skipped and everything else loads normally.
  • Fixed two problems that caused a settings file to be abandoned in favor of factory defaults. A damaged or unreadable
    file was silently replaced and then overwritten at the next save, destroying it; the problem is now logged and the
    offending file is renamed with a ".bad" suffix so its contents can be recovered. A sheet settings file written in the
    older format that nests its content under a "sheet_settings" entry appeared to contain nothing; it now loads
    correctly.
  • Fixed --convert destroying the contents of theme color (.colors) and font (.fonts) settings files. Instead of
    bringing such a file up to the current data format, GCS wrote whatever colors and fonts it h...
Read more

v5.44.0

Choose a tag to compare

@github-actions github-actions released this 04 Jul 05:22
94b8636

New & Improved

  • Added a "Hide unused columns in the melee & ranged weapon tables" sheet setting (off by default) that omits any weapon
    table column whose cells are all empty, such as the accuracy, range and other stat columns for powers that don't use
    them. (#161)
  • Added a "Hide conditional modifiers whose total is zero" sheet setting (off by default) that omits conditional
    modifiers whose contributing bonuses cancel out to +0, such as an item that negates a disadvantage's penalty. Leave it
    off to keep such entries visible for troubleshooting. (#1019)
  • Scripts can now read a trait's total point value via self.points (and the points field on any trait obtained
    through a script). The value accounts for base points, cost-per-level, trait modifiers, and the reduced cost of
    children within an Alternative Abilities container. (#1053)
  • Text fields now show a context menu on right-click containing the standard Cut, Copy, Paste and Select All actions.
    Only the actions that can currently be performed are included, and if none of them apply, no menu is shown.
  • Linux only: GCS now installs a desktop icon when it starts, so it shows up properly in the file viewer. This is done
    when launched, so the icon will not show up until you've launched GCS once. Also note that it only applies to
    Gnome-based desktops.

Bug Fixes

  • Linux only: Fix use of NumLock causing mouse clicks to be misinterpreted.
  • Key handling now properly masks out sticky modifier keys (i.e. CapsLock & NumLock) before handling them. This affected
    menu accelerator matching (menu command key sequences were ignored), key navigation within open menus, the fallback
    cut/copy/paste/select-all handling in text fields, and Return/Enter in the file dialog's file name field.
  • Fixed library "update to latest" option failing on reserved device names. (#1057)
  • Fixed substitutions in a skill's optional specialty not being detected. (#1054)
  • Fixed crashes on some configurations (primarily Linux) when the primary display cannot be determined.
  • Fixed newly opened character sheets, lists, PDFs and other views sometimes not receiving the keyboard focus, or
    losing it immediately, so you can now interact with them via the keyboard right after opening.
  • Fixed a leveled trait's level-adjusting bonus not being applied when the trait's name uses a substitution (such as a
    Talent with a fill-in-the-blank name).
  • Fixed a spell's college not having its substitutions applied when accessed from a script.
  • Fixed the safeguard that keeps a skill's level from being resolved through itself not working when the skill's name
    uses a substitution, which could cause an error when a script reads that skill's level.
  • Fixed a crash in the Hiking distance calculator when a character's Move was 0. In that case, the travel time is now
    shown as a dash, since no distance can be covered. Also fixed the travel time reading "1 days" instead of "1 day"
    for a one-day hike.
  • Fixed changes to an equipment modifier's per-level and per-pound cost and weight options not being noticed when
    comparing against a library source, so those options now sync correctly.
  • Fixed a crash that could occur when a script requested a random weight for a character with a very low Strength.
  • Fixed a trait loaded from a file with a negative level (which can really only occur if someone edited the file by
    hand) being left at that invalid value; such traits are now corrected to a level of 0.
  • Fixed a crash when adding or configuring a library with invalid settings; GCS now reports the problem instead of
    quitting.
  • Fixed multi-line tooltips, such as the one showing the individual bonuses that make up a conditional modifier's total,
    collapsing all of their content onto a single line instead of showing one entry per line.
  • Windows only: Fixed the packaged executable showing a generic icon and missing its version details in the Properties
    dialog, caused by the icon and version resources not being embedded during the release build.
  • Command-line only: Combining the --text export option with --convert or --sync is now reported as an error
    rather than being silently ignored, and requesting a --text export with no exportable files is now reported as an
    error instead of doing nothing.