Releases: richardwilkes/gcs
Release list
v5.51.0
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
entityobject:otherEquipment, the equipment not currently carried, andwealthCarriedandwealthNotCarried, 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
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
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
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
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 asivfor 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 pageivof the Basic Set, useB: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
B338and 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 theBXreference key. Previously, these
references only opened for those who had combined the two volumes into a single PDF mapped to theBkey; 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
theBXkey to it as well as theBkey. (#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
equippedproperty of equipment in scripts now reportsfalsefor 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
EQUIPMENTandEQUIPMENT_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
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.logfile 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
New & Improved
- Added a way to get GCS running on a machine whose graphics driver won't cooperate. Setting the
UNISON_CPU_RENDERINGenvironment variable to1before 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_RENDERINGsetting described above and names defective graphics drivers, alongside the input device drivers it already mentioned, as a possible cause.
v5.45.1
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
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 anxmultiplies; 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.
1or-1), a value ending in%adjusts by a percentage (e.g.-10%), and a value with anxmultiplies (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 asmd: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
--convertdestroying 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...
v5.44.0
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 thepointsfield 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
--textexport option with--convertor--syncis now reported as an error
rather than being silently ignored, and requesting a--textexport with no exportable files is now reported as an
error instead of doing nothing.