{"id":48740798,"url":"https://github.com/themuffinator/fnq3","last_synced_at":"2026-04-21T07:07:37.195Z","repository":{"id":348609797,"uuid":"1198923065","full_name":"themuffinator/FnQ3","owner":"themuffinator","description":"Fappin' Quake 3. Fap while you frag!","archived":false,"fork":false,"pushed_at":"2026-04-15T05:18:39.000Z","size":22780,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-15T07:06:53.414Z","etag":null,"topics":["arena-fps","bsp","idtech3","quake","quake3","quake3arena","quake3e","shooter-game","source-port","sourceport"],"latest_commit_sha":null,"homepage":"https://www.darkmatter-quake.com","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/themuffinator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-01T22:25:46.000Z","updated_at":"2026-04-14T13:25:58.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/themuffinator/FnQ3","commit_stats":null,"previous_names":["themuffinator/fnquake3","themuffinator/fnq3"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/themuffinator/FnQ3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themuffinator%2FFnQ3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themuffinator%2FFnQ3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themuffinator%2FFnQ3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themuffinator%2FFnQ3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/themuffinator","download_url":"https://codeload.github.com/themuffinator/FnQ3/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/themuffinator%2FFnQ3/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31959884,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arena-fps","bsp","idtech3","quake","quake3","quake3arena","quake3e","shooter-game","source-port","sourceport"],"created_at":"2026-04-12T07:02:50.871Z","updated_at":"2026-04-18T07:01:10.526Z","avatar_url":"https://github.com/themuffinator.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# FnQ3\nFappin' and Fraggin'\n\n\u003cp\u003e\n  \u003ca href=\"BUILD.md\"\u003e\u003cimg alt=\"Build Guide\" src=\"https://img.shields.io/badge/Build-Guide-1f2937?style=for-the-badge\"\u003e\u003c/a\u003e\n  \u003ca href=\"docs/fnquake3/TECHNICAL.md\"\u003e\u003cimg alt=\"Technical Notes\" src=\"https://img.shields.io/badge/Technical-Notes-0f766e?style=for-the-badge\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/badge/License-GPL--2.0-c2410c?style=for-the-badge\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003c/div\u003e\n\n**FnQ3** is a modern source-port for *Quake III Arena* built around a simple goal: enhance the modern Quake 3 experience whilst leaving the game code untouched.\n\n## Features\n\n- A flexible display pipeline with renderer selection, fullscreen and windowed mode controls, internal render scaling, **HDR**, anti-aliasing, and detailed **bloom** tuning. See the [Display Guide](docs/DISPLAY.md).\n- Configurable **cel shading** for model entities, including map world models, player models, and the first-person weapon, with banded lighting and optional silhouette outlines. See the [Display Guide](docs/DISPLAY.md).\n- Optional player highlighting with **rimlight** and **stencil border effects**, per-mode team or free colors, and teammate/enemy override colors. See the [Visuals guide](docs/VISUALS.md).\n- Flexible 4:3-aware **aspect correction** for HUDs, menus, UI model widgets, and cinematics, with sensible widescreen options when you want them. See the [Aspect Correction guide](docs/ASPECT_CORRECTION.md).\n- **Enhanced console** functionality, including configurable scaling, smoother scrolling, mouse interaction, text selection, drag and drop, and an optional live tab-completion popup. See the [Console guide](docs/CONSOLE.md).\n- An expanded **screenshot system** with pattern-based naming, optional view metadata sidecars, watermark compositing, and OpenGL cube-map capture. See the [Screenshot guide](docs/SCREENSHOTS.md).\n- CPMA/CNQ3-style **rainbow text color escapes**, with live preview right in the console input line.\n- **SDL3** support for video, audio, and input on modern platforms.\n- OpenAL is the default audio backend, with device selection, **spatial reverb, occlusion**, and an easy fallback to the original mixer. See the [Audio guide](docs/AUDIO.md).\n- Compatibility support for Quake III Arena 1.17 **`.dm3` demo playback** alongside standard retail `.dm_XX` demo formats.\n- Compatibility support for older **Quake 3 IHV / q3test `IBSP v43` maps** alongside standard retail Quake III Arena BSP content.\n- Quick-and-simple compatibility support for **Quake Live `IBSP v47` BSPs**, including ignored advert data and `advertisement` entity fallback to `func_static`.\n- Support for the **`novlcollapse`** shader keyword used by Quake Live materials.\n- Support for **Quake Live BETA encrypted `.pk3` archives** alongside normal ZIP-based Quake 3 content packages.\n- Compatibility support for **Quake II `.pak` archives**, including archive discovery, reading, seeking, and pure/download path handling alongside standard Quake 3 packages.\n- Compatibility support for **Quake II `.wal` textures**, with automatic palette loading from `pics/colormap.pcx` during decode.\n\n## Credits\n\n- CPMA/CNQ3-style rainbow text color escape support is adapted from the CPMADevs CNQ3 project.\n- IBSP v43 / Quake 3 IHV map loading support is adapted from Spearmint's `bsp_q3ihv.c` implementation.\n- Legacy `.dm3` demo compatibility work was cross-checked against [WolfcamQL](https://github.com/brugal/wolfcamql).\n- Quake Live BETA encrypted PK3 support uses the XOR table published by Luigi Auriemma's **qldec** (`quakelivedec.c`).\n- Quake II `.pak` / `.wal` compatibility work was cross-checked against the DarkMatter-Q2 project.\n- Upstream [Quake3e](https://github.com/ec-/Quake3e) upon which this is based.\n\n## Quick Start\n\n1. Build the engine for your platform, or grab a packaged build if you already have one.\n2. Put the executable next to your Quake III Arena installation and data files.\n3. Leave your original retail game assets alone.\n4. Use [BUILD.md](BUILD.md) if you need the platform-specific build steps.\n\n## Release Channels\n\n- Tagged releases use semantic version tags such as `v0.1.0`.\n- Nightly packages follow current mainline work and include the incremented build version, build date, and commit in the archive name.\n\n## Documentation\n\n- [Build Guide](BUILD.md) if you want to compile FnQuake3 yourself.\n- [Display Guide](docs/DISPLAY.md) for renderer choice, video modes, render scaling, HDR, anti-aliasing, and bloom tuning.\n- [Visuals Guide](docs/VISUALS.md) for player highlighting and the current visual presentation controls.\n- [Aspect Correction Guide](docs/ASPECT_CORRECTION.md) for HUD, menu, and cinematic presentation options.\n- [Audio Guide](docs/AUDIO.md) for backend selection, volume, music, spatial audio, and sound debugging tools.\n- [Console Guide](docs/CONSOLE.md) for console scaling, interaction, completion, and appearance.\n- [Screenshot Guide](docs/SCREENSHOTS.md) for capture commands, naming patterns, view metadata sidecars, watermarks, and cube-map export.\n- [Technical Notes](docs/fnquake3/TECHNICAL.md) for maintainers, release flow, and repo conventions.\n- [Agent Guide](AGENTS.md) for automation rules and local repository references.\n\n## Project Priorities\n\n1. Full compatibility with retail Quake III Arena and its demos.\n2. Speed and efficiency.\n3. Enhanced modern platform support.\n4. Cross-platform support, with other platforms considered.\n\nCurrent tracked base version: `0.1.0`\nCurrent build version: `0.1.0`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemuffinator%2Ffnq3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthemuffinator%2Ffnq3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthemuffinator%2Ffnq3/lists"}