screenshot-basic en FiveM: qué captura y cuáles son sus límites
Publicado el 20 de agosto de 2026 - Pedro García, FiveMonitor
La forma gratuita de capturar la pantalla de un jugador en FiveM, documentada con honestidad por alguien que vende una alternativa de pago. Incluidas las dos cosas que casi todas las guías se equivocan al explicar la instalación.
Respuesta corta: screenshot-basic es el recurso gratuito y oficial de Cfx.re que captura el render del juego de un jugador y lo sube por HTTP. Solo hace imágenes fijas —jpg, png o webp—, nunca vídeo. Hay que compilarlo con los builders yarn y webpack al arrancar, y no tiene ningún commit desde el 6 de enero de 2022. Funciona; también está abandonado.
Dos cosas que casi todas las guías explican mal
Primera, no viene con FXServer. Una página que ahora mismo rankea para este término abre diciéndote que todos los servidores ya lo traen. No es así: cfx-server-data incluye un puñado de recursos base y screenshot-basic no está entre ellos. Lo descargas tú.
Segunda, un clon limpio no arranca. El .gitignore del repositorio excluye dist/, y el manifest apunta a dist/client.js, dist/server.js y dist/ui.html. Declara yarn y webpack como dependencias precisamente porque esos builders lo compilan al arrancar. Otra guía afirma que no hace falta compilar porque el resultado estaría commiteado. No lo está, y se comprueba en treinta segundos mirando el repositorio.
Los tres exports
requestScreenshot(options, cb)— en cliente, devuelve la imagen como data URI. El README lleva un aviso explícito: "Please don't send this through _any_ server events." Mandar un data URI a resolución completa por un net event es la forma de atascar un servidor.requestScreenshotUpload(url, field, options, cb)— en cliente, sube directamente a una URL.requestClientScreenshot(source, options, cb)— en servidor, y el que quieres para moderación, porque la petición sale del servidor y no de código cliente que un jugador puede inspeccionar.
Un apunte de seguridad que conviene repetir: un fragmento muy copiado mete una cabecera Authorization con una clave de API dentro de requestScreenshotUpload, que es un export de cliente. Esa clave acaba en el proceso del jugador. Usa el export de servidor.
Opciones de imagen, y la que no puedes fijar
Puedes elegir encoding —jpg por defecto, o png o webp— y quality de 0.0 a 1.0, con 0.92 por defecto, que solo aplica a codificadores con pérdida. Lo que no puedes elegir es la resolución. La captura se hace siempre al tamaño completo de la ventana NUI, es decir a la resolución real de juego del jugador. Uno con monitor 4K genera un JPEG 4K, siempre, y eso lo pagas en tiempo de subida y en almacenamiento.
Qué cuesta, y por qué resmon no marca nada
La página NUI ejecuta un bucle de render atado a requestAnimationFrame que dibuja en todos los frames, se haya pedido captura o no. Ese trabajo ocurre dentro del navegador NUI, no en el tick de Lua del recurso, y por eso el monitor de recursos del servidor no marca prácticamente nada. El coste es real, pero está en la máquina del jugador y es invisible para las herramientas que mirarías normalmente.
Los límites
- Solo imágenes fijas. No hay ninguna vía de vídeo. Si necesitas ver qué pasó durante diez segundos y no en un instante, este recurso no puede.
- Sin timeout. Si el cliente no responde nunca, tu callback no se dispara nunca. Envuélvelo tú.
- Sin mantenimiento. 16 commits en total, el último de enero de 2022. Eso no es automáticamente un problema —es pequeño y funciona— pero nadie te va a arreglar nada.
- No es una prueba. La captura sale de la máquina del propio jugador, por un camino en el que un tramposo decidido puede interferir. Trátala como indicio, no como certeza.
¿Funciona en GTA V Enhanced?
Esta es la pregunta abierta de 2026 para todo lo que capture pantalla. La propia FAQ de FiveGuard dice que su soporte para Enhanced está parado porque cfx-game-view en NUI está roto, que es lo que rompe las capturas y la grabación de pantalla. Ese mecanismo es del que depende screenshot-basic, así que la respuesta honesta es que la limitación es de la plataforma y no de un producto concreto, incluido el nuestro.
Dónde estamos nosotros, con honestidad
FiveMonitor captura por el mismo camino: un game view de WebGL crudo sobre el render target del juego dentro de una página NUI. No vemos nada que screenshot-basic no pueda ver, y lo decimos claro en lugar de insinuar algún acceso privilegiado. Las diferencias están en lo que pasa alrededor de la captura: vídeo continuo en vez de un fotograma, un panel en el navegador que tus moderadores abren con sus propias subcuentas de Discord en vez de un canal lleno de imágenes, y ninguna clave de API viviendo en código cliente.
Si con imágenes fijas a un webhook te vale, screenshot-basic es de verdad suficiente y es gratis. Si estás vigilando a un sospechoso y un fotograma no lo va a resolver, ahí es cuando empieza a importar ver la pantalla en directo. Planes desde 9,99 EUR/mes, 7 días de prueba y sin tarjeta: mira los planes o empieza la prueba.