This page covers common GHUD problems and how to solve them.
Before looking to any specific solution, try running Get All Data again, as this will sometimes resolve issues on its own.
If GHUD reports that the API key is missing, check:
Assets/GHUDatabase/APIKey/APIKey.txt
Make sure the placeholder value has been replaced with a valid Google Cloud API key and that the Google Sheets API is enabled for the Google Cloud project that owns the key.
If GHUD cannot locate the spreadsheet, check:
Assets/GHUDatabase/APIKey/GoogleSheetsURL.txt
This file may contain either the spreadsheet ID or Google Sheets URL.
The spreadsheet must also be accessible to the API.
For the standard GHUD setup, the copied sheet should be shared as:
Anyone with the link → Viewer
GHUD also logs the failed Google Sheets API request.
Opening that request in a browser can help determine the reason for the problem.
Other errors are possible too,
such as too many requests if using Get All Data Repeatedly, or rarely, Google APIs are down for a short while.
If an asset accessor such as Items.Sprite(...) or Characters.Prefab(...) returns null, check that:
The asset exists in the correct TabAssets folder;
The asset name matches the Row enum ID unless custom loader logic changes the lookup;
Set Asset References was run after the asset was added or renamed.
Sometimes assets accessors can point to a prior asset despite the new one being added to the appropriate folder.
If an asset was removed or renamed but the old reference is still present, run:
Clear Missing References
This clears serialized asset references that are no longer found according to the current location rules,
then the generated asset loaders cache the valid references.
For errors indicating the EnumsLoader ETab names do not match the Google Sheets tabs,
These errors can be fixed by running the Update Tab Names utilities macro in the Sheets.
This macro can be run from either the Utilities ribbon option,
or from the macro button labeled "Update Tab Names" on the EnumsLoader tab.
Update Tab Names also runs Update Defined Named Ranges when it finishes,
So you only need to run that utility when your only renamed any NoTabs and you want it to run faster than Update Tab Names.
GHUD reports a Console error when a non-empty cell cannot be converted into the type defined for its column.
The error identifies the tab, column, sheet row, invalid value, expected type, and fallback value.
For example, if a column is defined as an int but contains text, GHUD will report that cell and use the fallback value instead.
Fix the value in Google Sheets, then run Get Cell Data to correct the invalid cells.
Because GHUD uses the Google Sheets data to generate C# scripts, entry errors can cause compile errors.
To help with these kinds of errors, the first tab of the GHUD Google Sheets Template offers error reporting.
Data rules that are currently violated will be highlighted in red in rows 29 - 49 of the GHUD tab along with the offending tab.
Use this information to correct the rule violations in the respective tab(s).
If there is no detected error in the sheets, but you are still experiencing an error in the Unity project, try Get All Data again.
If the error persists after that rerun,
read the first compile error in the Unity Console, and try to fix it before looking at other errors.
In most cases, start with the first relevant error in the Unity Console.
Later errors may only be consequences of the original problem.
If you need more help debugging GHUD,
enable Log Details in the ~ Data Loading ~ section of GHUD window.
If you need additional help with GHUD, send an email with details of your problem to info@grandhawkunion.com.
Please include your Unity Asset Store invoice number in the subject of your email.