Three font catalogs, one editor window. Browse, preview, and install from Google Fonts, Fontshare, and Fontsource without leaving Unity.
| Provider | Families | Licenses surfaced | Delivery | API key |
|---|---|---|---|---|
| Google Fonts | ~1,700 | OFL 1.1 / Apache 2.0 / UFL 1.0 | Per-variant TTF (Google CDN) | Optional |
| Fontshare (OSS) | ~150 | OFL 1.1 only | Per-family ZIP (extracted once) | Not needed |
| Fontsource | 2,077 | OFL 1.1 / Apache 2.0 / MIT / UFL 1.0 | Per-variant TTF (jsDelivr) | Not needed |
The Search tab is the main entry point. Source pills switch between ALL and each provider; category pills narrow by classification; sort pills re-order by popularity, release date, or alphabetically.
ALL, GOOGLE FONTS, FONTSHARE, FONTSOURCE. Greyed-out on Google Fonts when no API key is configured (the pill stays visible so the feature is discoverable).SANS-SERIF / SERIF / DISPLAY / HANDWRITING / MONOSPACE + ♥ FAVORITES.POPULAR (default), LATEST (by lastModified), A-Z.EditorPrefs.The largest of the three catalogs. Full text search across ~1,700 families, per-variant TTF downloads, optional API key for higher rate limits.
FontOps can hit the Google Fonts API unauthenticated, but shared anonymous rate limits throttle heavy browsing. Adding a key removes that restriction.
EditorPrefs and only transmitted to Google's API.
Google Fonts' license label is read from the authoritative fonts.google.com/metadata/fonts/{family} JSON endpoint (after stripping the XSSI )]}' prefix). No HTML scraping — which is why Chewy, Coming Soon, and similar fonts that had been mis-flagged as OFL for months are now correctly surfaced.
Indian Type Foundry's fontshare.com exposes a mix of OFL fonts and closed-source ITF FFL fonts. FontOps ingests only the OFL subset so nothing in the tool can install a font with a non-redistributable license.
| Detail | Value |
|---|---|
| Filter rule | license_type == "sil_ofl" — applied at catalog-fetch time |
| Download shape | One ZIP per family; extracted once to Temp/FontManager/fontshare/{slug}/ and reused for installs + previews |
| Variant resolver | Deterministic camel-case suffix match (-Italic, -BoldItalic, -ExtraLight, …). No more fuzzy token scoring — fixes mis-shipped italics |
| License file | OFL.txt auto-dropped alongside installed TTFs (first install per family) |
| API key | None required |
The largest OFL/Apache/MIT catalog we integrate — 2,077 families, a strict superset of Google Fonts plus 126 unique families. Served from jsDelivr with no ZIP step: one direct TTF per variant.
| Detail | Value |
|---|---|
| Allowed licenses | OFL 1.1, Apache 2.0, MIT, UFL 1.0 (any other license rejected at ingest) |
| Download shape | Direct per-variant TTF from cdn.jsdelivr.net/fontsource/fonts/{id}@latest/{subset}-{weight}-{style}.ttf |
| License source | Per-font license field in the bulk /v1/fonts catalog, normalised to canonical labels |
| Version | Lazy-fetched from /v1/fonts/{id} on first card / specimen render (the bulk feed omits version) |
| License file | LICENSE.txt pulled once per family on first install |
| API key | None required |
Clicking ↓ INSTALL on a font card (or variant row) performs the same steps regardless of source:
Assets/Fonts/GoogleFonts/, Assets/Fonts/Fontshare/, Assets/Fonts/Fontsource/).OFL.txt / LICENSE.txt) on first install per family..fontops.json manifest sidecar so variant labels survive any future rescan.TMP_FontAsset.| Setting | Default | Effect |
|---|---|---|
| Download folder (per provider) | Assets/Fonts/{Provider} |
Where TTFs are saved. Each provider has its own folder; change any of them in Settings |
| Auto-create TMP | On | Generate a TMP_FontAsset after download |
| Generate Atlas | On | Bake an SDF atlas alongside the font asset |
| Atlas Size | 1024 × 1024 | Width/height of the generated SDF atlas |
FontOps → Settings (gear icon in the sidebar). Changes autosave — no Save button.
Cards show a plain-text placeholder until previews are loaded. Clicking Load Previews (down-arrow in the toolbar) downloads lightweight preview fonts and renders sample text directly in the editor.
| Problem | Fix |
|---|---|
| Google Fonts rate-limit errors | Add an API key in Settings, or wait a few minutes and retry |
| Google Fonts: "Invalid API key" | Verify the key in the Google Cloud Console and ensure the Fonts Developer API is enabled |
| Fontshare ZIP fails to extract | Check the Unity Console for the raw ZIP path. Re-fetch the catalog (Settings → Force Refresh) and retry |
| Fontsource version shows "—" in the specimen | Version is lazy-fetched on demand. Give it a second after opening the card. If it persists, check for network errors in the Console |
| TTF imports but no SDF atlas | Enable Generate Atlas in Settings. Also import TMP Essential Resources (Window → TextMeshPro) |
| Wrong glyphs showing under a correct-looking filename | Known pre-v1.0.0 Fontshare bug — fixed in b32d5c4. If you're on the current version and still seeing it, delete the family folder and re-install |