The in-editor font pipeline for Unity — browse, install, organise, and audit your type system without ever leaving the editor.
Free fonts from three catalogs. One-click install. Live previews. Licensing on every card. Palettes, compliance audits, and a visual font picker — all in one tool window.
Commercial-safe by default: OFL / Apache / MIT / UFL only.
| What | Details |
|---|---|
| 3 font providers | Google Fonts · Fontshare (OSS) · Fontsource — combined ~3,000+ unique families, all OFL/Apache/MIT/UFL |
| One-click install | No browser. No ZIP archive. TTF lands in your configured folder, auto-generates a TMP_FontAsset + SDF atlas if enabled |
| Cross-source dedup | ALL view collapses the same family across catalogs and shows a multi-source badge (e.g. GF + FSRC) |
| Font Palettes | ScriptableObjects with named roles (Heading, Body, Caption, Button, …) — every TMP component pulls from one source of truth |
| Font Picker (new) | A small search button (🔍) beside every TMP_FontAsset field — pick from palette roles, installed fonts, or one-click catalog installs with favorites, previews, and pagination, each typeset in its own face |
| Compliance Checker | Audits every text component in scenes + prefabs against a palette, with inline IGNORE / RESTORE |
| Font Scanner | Project-wide font discovery, duplicate detection (MD5), source classification, missing-TMP-asset alerts |
| Palette-less general audit | Run a usage/quality report with no palette assigned — surfaces installed-but-unused families and placeholder flags |
| Licensing on every card | Canonical license label (OFL 1.1, Apache 2.0, MIT, UFL 1.0) sourced from authoritative endpoints — never guessed |
| Zero boilerplate | All runtime components (FontPaletteApplier, FontComplianceIgnore) are drop-in MonoBehaviours |
| Provider | Catalog size | License filter | Delivery | API key |
|---|---|---|---|---|
| Google Fonts | ~1,700 families | OFL / Apache / UFL | Per-variant TTF from Google CDN | Optional — higher rate limit |
| Fontshare (OSS) | ~150 families | OFL only (ITF FFL rejected at ingest) | Per-family ZIP → extracted + cached | Not needed |
| Fontsource | 2,077 families (GF superset + 126 unique) | OFL / Apache / MIT / UFL | Per-variant TTF from jsDelivr | Not needed |
Browse + install from Google Fonts, Fontshare, and Fontsource. Cross-source dedup, live previews, per-font licensing.
Define typographic roles once. Every TMP component pulls from the palette — no more hand-tuning sizes per object.
Click the small search button (🔍) beside any TMP_FontAsset field. Pick from palette roles, installed fonts, or one-click catalog installs — each typeset in its own face.
Scan scenes + prefabs. Flag anything that doesn't follow your palette. Inline IGNORE / RESTORE on every component.
Scan existing fonts, get AI-assisted role-name suggestions, and build a palette from your project's current typography.
Configure settings, optionally add a Google Fonts API key, and create your first palette — all in under five minutes.
Feature overview trailer showcasing FontOps in action.
Set up your API key and import TextMeshPro essentials.
Full tutorial: download fonts, create a palette, and run your first audit.
Tools → FontOps — launches the editor window.Settings → Google Fonts API. Unlocks higher rate limits; Fontshare and Fontsource don't need any key.ALL / GOOGLE FONTS / FONTSHARE / FONTSOURCE), pick a font, hit ↓ INSTALL.Assets → Create → FontOps → Font Palette. Five default roles ship out of the box.Tools → Text Auditor → SCAN PROJECT. Anything off-palette gets a flag.FontPaletteAsset — the palette ScriptableObject. Holds a list of FontRoleEntry with font, size, style, spacing, and colour per role.FontPaletteApplier — MonoBehaviour that reads a role from a palette and pushes it onto the sibling TMP_Text. Per-property toggles for font, size, style, colour, spacing.FontComplianceIgnore — mark a GameObject to be skipped by the compliance audit with an optional reason string.Tools → FontOps) — all browsing, installing, palette editing, auditing, and scanning lives here.TMP_FontAsset field; searchable popup of palette roles, installed fonts, and one-click catalog installs. See Font Picker.Tools → FontOps → Export) — ships Samples~ contents that Unity's built-in exporter can't.| Dependency | Minimum Version | Notes |
|---|---|---|
| Unity | 2022.3 LTS | Works on all newer LTS + Unity 6 |
| TextMeshPro | 3.0.6 | Required. Absorbed into com.unity.ugui in Unity 6 — still works |
| Newtonsoft Json | 3.2.1 | Bundled automatically by UPM; no manual install |