Can I submit new/revised data files?
Absolutely! Almost all of the current data content of GCS was provided by helpful individuals other than
me. If you have completely new content, please create a new library for it and send the resulting file.
If, on the other hand, you're modifying one of the existing data files, please be sure to update to the
latest version from the git repository first, make your changes, then submit a patch file of the
differences. In either case, please either create a
Pull Request or an
Issue for the work and attach
the new file or patch file to that.
GCS won't start on my platform or it is behaving oddly. What is wrong?
Many things could be going wrong, but the most common cause of failures to launch correctly or odd
behavior is having extensions installed that override basic Java behavior or setting environment
variables that alter default behavior. To avoid this, make sure these environment variables are
and make sure these extension directories are empty or non-existent (listed per-platform):
- macOS: /Library/Java/Extensions
- Windows: %SystemRoot%\Sun\Java\lib\ext
- Linux: /usr/java/packages/lib/ext
What page reference abbreviations are being used in the data files?
The current list of page reference abbreviations can be found here:
How do I get GCS to use a high DPI display without pixelation/blurring when run on Windows?
In the Windows Explorer:
- Right-click the GCS app icon and choose "Properties"
- Select the "Compatibility" tab
- Click the "Change high DPI settings" button
- Check the checkbox at the bottom labeled "Override high DPI scaling behavior"
- Change the combo to say "Application" if it doesn't already
I've chosen a dark theme on Linux and it is making GCS unusable. How do I fix this?
This is discussed here:
Is there a version of GCS localized for my language?
The short answer is no. However, if you'd like to provide a translation for a language you're fluent in,
copy the template.i18n file in the i18n
directory and name it for your language (e.g. de.i18n for German), then
edit its contents, updating the v: values to have the translation for the
k: values. If you have questions, feel free to contact me about this.
Where can I find the global preferences file?
Its location is dependent upon your specific platform. You can find the preference file here:
- macOS: ~/Library/Preferences/gcs.json
- Windows: %LOCALAPPDATA%\gcs.json
- Linux: ~/.config/gcs.json
Does GCS produce a log file?
Yes. Its location is dependent upon your specific platform and some environment variables (see the next
question about environment variables). By default, you can find the log file here:
- macOS: ~/Library/Logs/gcs.log
- Windows: %LOCALAPPDATA%\logs\gcs.log
- Linux: ~/.local/logs/gcs.log
Are there any environment variables for controlling GCS's behavior? If so, what are they?
As of the v4.21 release, there are only two (not counting standard system ones, such as
HOME on macOS and Linux and LOCALAPPDATA on
- GCS_LOG: Sets the file that GCS will log problems to. This file is
overwritten with each launch. See "Does GCS produce a log file" above for details on where the log
file gets written if this environment variable is not set.
- GCS_TRANSLATIONS: Sets the directory that GCS will load
language translations from. By default, the i18n directory
inside the application package is used.
Can I define my own standard hit location tables and have them show up in the combo for selection?
Yes. Make sure to give the table a unique ID, then export it and place it in a directory named
"Hit Locations" at the top level of one of your GCS Library directories.
What operators and functions are available for use in attribute expressions?
- open paren:
- close paren:
- equal to:
- not equal to:
- less than or equal to:
- less than:
- greater than or equal to:
- greater than:
- logical and:
- logical or:
- logical not:
abs(arg) returns the absolute value of the arg
advantage_level(arg) looks for an advantage with the name given in arg and returns its level or -1 if it can't be found; available in v4.31+
cbrt(arg) returns the cube root of the arg
ceil(arg) returns the smallest (closest to negative infinity) value that is greater than or equal to the arg and is equal to a mathematical integer
exp(arg) returns Euler's number e raised to the power of the arg
floor(arg) returns the largest (closest to positive infinity) value that is less than or equal to the arg and is equal to a mathematical integer
if(arg1, arg2, arg3) returns arg3 if arg1 resolves to 0 or an empty string, otherwise returns arg2
log(arg) returns the natural logarithm (base e) of the arg
log1p(arg) returns the natural logarithm of the sum of the arg and 1
log10(arg) returns the base 10 logarithm of the arg
max(arg1, arg2) returns the greater of the two args
min(arg1, arg2) returns the lesser of the two args
pow(arg1, arg2) returns the value of arg1 raised to the power of arg2
roll(arg) returns the result of rolling dice (arg uses standard dice notation)
round(arg) returns the closest long to the arg, with ties rounding to positive infinity
signed(arg) returns the arg with a leading '+' if it is positive
sqrt(arg) returns the positive square root of arg