Skip to content

themuffinator/FnQL

Repository files navigation

FnQL

Fappin' Quake Live

Download Latest Release Quick Start Player Documentation Build Guide GPL-2.0 License

Compatibility target: Retail Quake Live (Steam) · Base version: 0.1.0 · Current build: 0.1.0

1. Introduction

FnQL is a modernized Quake Live engine for players who want the retail Steam game to retain its familiar behavior while gaining faster rendering, modern audio and input, stronger platform support, and useful quality-of-life improvements inherited from FnQ3.

Retail Quake Live compatibility comes first. FnQL is engine-only: it does not reconstruct or distribute Quake Live game code or assets, so a legitimate Quake Live installation on Steam is required. The official Windows package includes FnQL's open-source engine, its WebUI overlay, and the compiled closed-source Steam provider. Linux packages contain only redistributable FnQL components. No package includes Valve's steam_api.dll or any retail game content.

2. Features

  • Extensive Quake Live compatibility — built around the retail Steam release, with support for official assets and game modules, protocol 91 networking, .dm_91 demos, BSP v47 maps, advertisements, factories, player profiles, the retail WebUI, Steam integration and Workshop content.
  • Fast, modern hardware rendering — choose between optimized GLx, Vulkan raster and Vulkan RTX renderers, with GPU-cached world geometry, optimized lightmaps, reduced rendering overhead, improved depth precision and better performance on large or demanding maps.
  • Modern visual upgrades — optional HDR rendering and output, MSAA, supersampling, render scaling, anisotropic filtering, bloom, tone mapping, colour grading, high-quality dynamic lighting and shadows, motion blur, lens flares, soft particles, enhanced liquids and per-map fog.
  • Improved player visibility — optional player rim lighting, stencil outlines or both, with configurable enemy, teammate, team and free-for-all colours, intensity and outline thickness. Cel shading, model outlines and world-edge outlines are also available.
  • Better modern hardware and OS support — SDL3-based video and input, OpenAL audio, modern graphics APIs, high-resolution and high-refresh displays, borderless/windowed/fullscreen modes, fast Alt+Enter switching, controller hotplugging and improved compatibility with current desktop systems.
  • Low-latency, configurable controls — raw mouse input, Quake Live-accurate CPI scaling, signed acceleration, sensitivity caps and angle-history filtering, while retaining classic Quake3e/ioquake3 mouse styles. Modern gamepads and Unicode text input are also supported.
  • Modern spatial audio — OpenAL and HRTF headphone positioning, surround output, reverb, geometry-based occlusion, output-device selection, live device recovery and automatic fallback to the classic software mixer.
  • Major quality-of-life improvements — scalable TTF console text, smooth scrolling, mouse selection, clipboard support, drag-and-drop editing, live command/CVar/map completion, minimize hotkeys, focus muting, lower background CPU usage and more flexible player configuration.
  • Better screenshots, video and streaming tools — PNG, TGA, JPEG and BMP capture, clipboard screenshots, custom filenames, camera metadata, configurable levelshots, watermarks, cubemap capture, arbitrary-resolution output and FFmpeg video piping.
  • Faster content handling — quicker startup and map restarts with large PK3 libraries, raised filesystem and map limits, fast redirected downloads and automatic handling of server-required Workshop content.
  • Greater stability and security — extensive Quake3e and FnQ3 bug fixes, improved memory management, lower memory usage, stronger network protection and graceful fallbacks when optional rendering, audio, WebUI or Steam functionality is unavailable.

3. Getting Started

First install Quake Live through Steam and launch the retail game once so Steam creates its normal files and player profile. Then download the package for your platform from the latest FnQL release.

Windows retail client

  1. Extract the Windows .zip into the Quake Live installation folder.
  2. Keep FnQL-pkg.fnz, fnql-web.pak, the renderer modules, and packaged runtime libraries beside fnql.exe.
  3. Leave Steam running and launch fnql.exe. The official Windows build is Win32/x86 so it can load the retail game modules and WebUI.

Native Linux dedicated server

  1. Install the 32-bit runtime libraries reported by ldd ./fnql.ded on your distribution. The release is i686 so it can load retail qagamei386.so from baseq3/bin.pk3.
  2. Extract the Linux archive with tar -xzf fnql-*-linux-x86.tar.gz -C "<Quake Live folder>". The tarball preserves the executable bits on the engine and renderer modules.
  3. From that folder, start the server with ./fnql.ded +set fs_steampath "$PWD" +set dedicated 2 +map campgrounds. Keep the two FnQL package sidecars and renderer modules beside the binaries.

Native macOS engine and tools

  1. Download the ZIP matching Intel (x86_64) or Apple Silicon (aarch64) and preserve the complete FnQL.app layout when extracting it.
  2. The application already contains its renderer dylibs and FnQL sidecars. Standalone fnql.ded and fnql-audiozonesc are included beside the app.
  3. Release builds are produced and tested natively on both Apple architectures; local and normal CI builds receive no project-applied app-bundle or Developer ID signature by default. (Apple Silicon retains clang's required ad-hoc Mach-O signature.) See the Build Guide for opt-in signing, notarization, and Universal 2 staging commands.

CI covers native compilation, automated tests, packaging, and dependency audits; the explicit release lane also covers Developer ID signatures and notarization. A windowed renderer smoke test on physical Apple hardware is still a promotion gate, and the package intentionally includes no macOS Steam provider or Valve runtime.

Retail Quake Live ships native Linux server modules, but its client and WebUI modules are Win32-only. The native Linux client executable is therefore an engine/platform development target, not a supported retail-play path. Use the Win32/x86 package for retail client play. Retail also ships no macOS game, client, UI, or QVM modules, so the native Mac package supports the engine and tools but cannot start a retail match. FnQL will not reconstruct those modules. FnQL discovers conventional Steam libraries on each supported OS; for a custom library use +set fs_steampath "<Quake Live folder>". Optional Steam and WebUI services fail safely when unavailable. To compile FnQL yourself, including native x86_64 and ARM development builds, use the Build Guide.

4. Documentation

Player guides

  • Display Guide for renderer selection, display modes, HDR, render scaling, anti-aliasing, bloom, lighting, shadows, fog, liquids, lens flares, motion blur, and other presentation controls.
  • RTX Renderer Guide for ray-tracing requirements, renderer selection, fallback behavior, safe starting settings, and troubleshooting.
  • Visuals Guide for player highlighting, team and enemy colours, cel shading, and outlines.
  • Aspect Handling Guide for retail WebUI, menu, and cinematic layout behavior.
  • Audio Guide for backends, devices, HRTF, spatial effects, fallback behavior, and troubleshooting.
  • Console Guide for console layout, scaling, completion, clipboard use, and mouse interaction.
  • Screenshot Guide for capture commands, formats, filenames, metadata, levelshots, watermarks, and cubemaps.
  • Release History for published downloads and changelogs.

Technical and build docs

  • Build Guide for compiling FnQL locally.
  • GLx Renderer Guide for GLx availability, diagnostics, and troubleshooting.
  • Input Compatibility Notes for retail mouse math, text input, controllers, and preserved legacy input profiles.
  • WebUI Backend Notes for retail resources, platform boundaries, overlay order, and fallback rules.
  • Steam Provider Notes for the open loader ABI, separately distributed provider, and runtime policy.
  • RTX Renderer Contract for the renderer's Quake Live ABI boundary, conservative defaults, build gates, and runtime validation.
  • Technical Notes for repository structure, release flow, compatibility workflow, and maintainer conventions.

5. Credits

FnQL follows a clear upstream lineage from the Quake III Arena SDK, through ioquake3, Quake3e, FnQ3, and QL-SRP.

See CREDITS.md for the full credits, acknowledgements, and trademark notice.