diff --git a/CHANGELOG.md b/CHANGELOG.md
index 766daab..b3a71d4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,6 +5,49 @@ All notable changes to FixFX will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
+## [1.3.0] - 2026-03-04
+
+### Added
+
+#### Game References
+
+- **Game References section** (`/game-references`) — 12 new reference pages backed by the `/api/game-references` endpoints, all with search, pagination, and loading skeletons
+- **Blips** (`/game-references/blips`) — Image grid of all minimap blip icons with ID labels; secondary tab for the blip color palette with hex swatches
+- **Checkpoints** (`/game-references/checkpoints`) — Image grid of all checkpoint types with section filter tabs (standard 0–49 / type 44–46 variant)
+- **Markers** (`/game-references/markers`) — Image grid of all 44 `DRAW_MARKER` types with ID and name labels
+- **Ped Models** (`/game-references/ped-models`) — Image grid of all pedestrian models with category filter chips, prop/component counts, and pagination
+- **Weapon Models** (`/game-references/weapon-models`) — Card grid grouped by weapon type with expandable detail panels (hash key, model hash key, DLC, description, components, tints)
+- **Data Files** (`/game-references/data-files`) — Searchable table of all resource manifest `data_file` keys with file type, root element, mounter, and example columns
+- **Game Events** (`/game-references/game-events`) — Searchable table of client-side game events with descriptions
+- **Gamer Tags** (`/game-references/gamer-tags`) — Table of head display component IDs and names
+- **HUD Colors** (`/game-references/hud-colors`) — Toggle between a color swatch grid and a full RGBA/hex table for all ~234 HUD color indices
+- **Net Game Events** (`/game-references/net-game-events`) — Searchable table of `GTA_EVENT_IDS` enum entries with sequential IDs
+- **Pickup Hashes** (`/game-references/pickup-hashes`) — Searchable table of `ePickupHashes` enum entries with numeric hash values
+- **Zones** (`/game-references/zones`) — Searchable table of all 1300+ map zones with zone name ID, zone name, and description
+- **Game References Hub** (`/game-references`) — Landing page with a hero section, live stats row (category count + total entries from `/api/game-references/summary`), and a 4-column responsive card grid; each card displays a per-category entry count badge fetched from the summary endpoint
+- **Game References Layout** — Shared SEO metadata and Open Graph tags for the `/game-references` route group
+
+### Changed
+
+#### JSON Validator
+
+- **Modular Architecture** — Rewrote the monolithic 913-line `validator-content.tsx` into a fully modular plugin-based system
+ - `types.ts` — Shared TypeScript interfaces (`ValidatorType`, `IssueSeverity`, `ValidationIssue`, `ValidationResult`, `ValidatorConfig`, `ValidatorPlaceholder`)
+ - `base-validator.ts` — Abstract `BaseValidator` class with shared `parseJson`, `formatJson`, `createIssue`, and `getConfig` methods
+ - `validators/generic.ts` — `GenericJsonValidator` for plain JSON syntax validation
+ - `validators/txadmin-embed.ts` — `TxAdminEmbedValidator` with Discord embed structure and character limit enforcement
+ - `validators/txadmin-config.ts` — `TxAdminConfigValidator` with hex color, button structure, and status string/color pairing validation
+ - `registry.ts` — `ValidatorRegistry` singleton for registering, retrieving, and querying all validators
+- **Componentized UI** — Split rendering into focused, reusable components under `core/validator/components/`
+ - `ValidatorHeader` — Title, mode badge, and Format / Clear / Validate action buttons with keyboard shortcut hints
+ - `EditorPanel` — JSON input textarea with invalid-state styling and `Ctrl+Enter` hint
+ - `ResultsPanel` — Animated results display with severity badges, issue path/message/suggestion rendering, formatted output copy, and validation metadata footer (character count, line count, validation time)
+ - `ValidatorSidebar` — Collapsible sidebar (expanded `w-72` / collapsed `w-20`) with validation mode selector, quick templates, click-to-insert placeholder variables, and resource links
+- **Validation Metadata** — Results now include `validationTime`, `characterCount`, and `lineCount` surfaced in the results panel footer
+- **Type rename** — Internal validator type `txadmin-embed-config` renamed to `txadmin-config` for consistency
+
+---
+
## [1.2.0] - 2026-02-14
### Added
diff --git a/app/game-references/_components/page-shell.tsx b/app/game-references/_components/page-shell.tsx
new file mode 100644
index 0000000..fa55ae0
--- /dev/null
+++ b/app/game-references/_components/page-shell.tsx
@@ -0,0 +1,257 @@
+"use client";
+
+import Link from "next/link";
+import { ChevronLeft, Search, X, type LucideIcon } from "lucide-react";
+import { Button } from "@ui/components/button";
+import { Input } from "@ui/components/input";
+import { cn } from "@utils/functions/cn";
+
+// ---------------------------------------------------------------------------
+// PageShell
+// ---------------------------------------------------------------------------
+
+interface GameReferencePageShellProps {
+ icon: LucideIcon;
+ iconColor: string;
+ iconBg: string;
+ title: string;
+ description: React.ReactNode;
+ badge?: string;
+ controls?: React.ReactNode;
+ children: React.ReactNode;
+}
+
+export function GameReferencePageShell({
+ icon: Icon,
+ iconColor,
+ iconBg,
+ title,
+ description,
+ badge,
+ controls,
+ children,
+}: GameReferencePageShellProps) {
+ return (
+
+ setOffset(Math.max(0, offset - LIMIT))}
+ onNext={() => setOffset(offset + LIMIT)}
+ />
+ >
+ )}
+
+ );
+}
\ No newline at end of file
diff --git a/app/game-references/page.tsx b/app/game-references/page.tsx
new file mode 100644
index 0000000..6ced88f
--- /dev/null
+++ b/app/game-references/page.tsx
@@ -0,0 +1,259 @@
+"use client";
+
+import Link from "next/link";
+import {
+ Crosshair,
+ MapPin,
+ Layers,
+ Users,
+ Sword,
+ FileCode,
+ Zap,
+ Tag,
+ Palette,
+ Network,
+ Hash,
+ Map,
+ ArrowRight,
+ BookOpen,
+ Database,
+} from "lucide-react";
+import { useFetch } from "@core/useFetch";
+import { API_URL } from "@/packages/utils/src/constants/link";
+
+const REFERENCES = [
+ {
+ slug: "blips",
+ label: "Map Blips",
+ description: "All minimap blip icons with IDs and the full blip colour palette.",
+ icon: Crosshair,
+ color: "from-blue-500/20 to-blue-600/5 border-blue-500/20",
+ iconColor: "text-blue-500",
+ tag: "blips",
+ },
+ {
+ slug: "checkpoints",
+ label: "Checkpoints",
+ description: "Checkpoint types for CREATE_CHECKPOINT — standard and type 44–46 variants.",
+ icon: MapPin,
+ color: "from-emerald-500/20 to-emerald-600/5 border-emerald-500/20",
+ iconColor: "text-emerald-500",
+ tag: "checkpoints",
+ },
+ {
+ slug: "markers",
+ label: "Markers",
+ description: "All 44 DRAW_MARKER types with IDs and name labels.",
+ icon: Layers,
+ color: "from-orange-500/20 to-orange-600/5 border-orange-500/20",
+ iconColor: "text-orange-500",
+ tag: "markers",
+ },
+ {
+ slug: "ped-models",
+ label: "Ped Models",
+ description: "Pedestrian model names with category filters, prop and component counts.",
+ icon: Users,
+ color: "from-violet-500/20 to-violet-600/5 border-violet-500/20",
+ iconColor: "text-violet-500",
+ tag: "ped-models",
+ },
+ {
+ slug: "weapon-models",
+ label: "Weapon Models",
+ description: "Weapon model names grouped by type with hash keys, DLC info, components, and tints.",
+ icon: Sword,
+ color: "from-red-500/20 to-red-600/5 border-red-500/20",
+ iconColor: "text-red-500",
+ tag: "weapon-models",
+ },
+ {
+ slug: "data-files",
+ label: "Data Files",
+ description: "All resource manifest data_file keys with file type, root element, and mounter details.",
+ icon: FileCode,
+ color: "from-cyan-500/20 to-cyan-600/5 border-cyan-500/20",
+ iconColor: "text-cyan-500",
+ tag: "data-files",
+ },
+ {
+ slug: "game-events",
+ label: "Game Events",
+ description: "Client-side game events with descriptions for use in resource scripting.",
+ icon: Zap,
+ color: "from-yellow-500/20 to-yellow-600/5 border-yellow-500/20",
+ iconColor: "text-yellow-500",
+ tag: "game-events",
+ },
+ {
+ slug: "gamer-tags",
+ label: "Gamer Tags",
+ description: "Head display component IDs for SET_MULTIPLAYER_HANGER_COLOUR and related natives.",
+ icon: Tag,
+ color: "from-pink-500/20 to-pink-600/5 border-pink-500/20",
+ iconColor: "text-pink-500",
+ tag: "gamer-tags",
+ },
+ {
+ slug: "hud-colors",
+ label: "HUD Colors",
+ description: "All ~234 HUD colour indices with RGBA values and hex codes — swatch grid and table view.",
+ icon: Palette,
+ color: "from-fuchsia-500/20 to-fuchsia-600/5 border-fuchsia-500/20",
+ iconColor: "text-fuchsia-500",
+ tag: "hud-colors",
+ },
+ {
+ slug: "net-game-events",
+ label: "Net Game Events",
+ description: "GTA_EVENT_IDS enum entries with sequential IDs for network event handling.",
+ icon: Network,
+ color: "from-sky-500/20 to-sky-600/5 border-sky-500/20",
+ iconColor: "text-sky-500",
+ tag: "net-game-events",
+ },
+ {
+ slug: "pickup-hashes",
+ label: "Pickup Hashes",
+ description: "ePickupHashes enum entries with numeric hash values for pickup scripting.",
+ icon: Hash,
+ color: "from-lime-500/20 to-lime-600/5 border-lime-500/20",
+ iconColor: "text-lime-500",
+ tag: "pickup-hashes",
+ },
+ {
+ slug: "zones",
+ label: "Zones",
+ description: "All 1300+ map zones with zone name IDs and descriptions for area detection.",
+ icon: Map,
+ color: "from-teal-500/20 to-teal-600/5 border-teal-500/20",
+ iconColor: "text-teal-500",
+ tag: "zones",
+ },
+];
+
+interface SummaryData {
+ success: boolean;
+ counts: Record;
+ total: number;
+}
+
+export default function GameReferencesPage() {
+ const { data: summary } = useFetch(
+ `${API_URL}/api/game-references/summary`,
+ {},
+ [],
+ );
+
+ const counts = summary?.counts ?? {};
+ const totalEntries = summary?.total;
+
+ return (
+
+ {/* Ambient background */}
+
+
+
+
+
+
+
+ {/* Hero */}
+
+
+
+
+
+
+ Game References
+
+
+
+
+ FiveM{" "}
+
+ Reference Data
+
+
+
+
+ Searchable reference tables for GTA V and FiveM internals — blips,
+ markers, ped models, weapon models, HUD colours, zones, and more.
+ Everything you need for scripting, mapped and indexed.
+