El validador
Cada vez que pulsas «Guardar versión», el Estudio valida el borrador. Lo hace en dos capas:
- Revisión estática. Lee los cuatro archivos sin ejecutarlos: que el manifest sea JSON válido, que el menú sea
coherente, que
index.html,style.cssyscript.jsno usen nada prohibido, y que lo que declaras y lo que usas coincidan (eventos, parámetros, acciones y archivos). - Prueba de ejecución. Abre el widget en un navegador de prueba conectado a un simulador de Streamer.bot, lanza los eventos declarados y mira qué pasa: si conecta, si se suscribe, si reacciona, si resiste una reconexión y si un mensaje con HTML acaba convertido en elementos.
Errores y avisos
Sección titulada «Errores y avisos»- Un error impide publicar la versión.
- Un aviso no lo impide, pero señala algo que casi seguro quieres arreglar.
- Algunos códigos son un aviso en el borrador y un error al guardar una versión (por ejemplo,
asset_not_found).
Cada hallazgo trae un código (como js_forbidden_eval), el archivo y, si se sabe, la línea. Todos están en la
lista de códigos, con lo que significan y cómo se arreglan.
Límites
Sección titulada «Límites»- Tamaño: 300 KB entre los cuatro archivos y 64 KB para
manifest.json. El diseño de las alertas (alerts) cuenta aparte, hasta 128 KB. - Archivos propios: hasta 30 en
assets. - Prueba de ejecución: 20 segundos como máximo, y un tope de memoria; si un widget se pasa, la prueba se corta
(
runtime_timeoutyruntime_memory). - Cola: una tarea de
Widget.queuedura como mucho 90 segundos y caben 50 a la espera.
Lo que no está permitido
Sección titulada «Lo que no está permitido»Los widgets corren dentro de OBS, y por eso el validador es estricto con lo que pueden hacer:
- Red: nada de
fetch,WebSockety similares. Los datos llegan por los eventos de Streamer.bot. - HTML dinámico: nada de
innerHTML; el texto se pinta conWidget.dom. - Código dinámico: nada de
evalniFunction, y nada de workers. - Ventanas: el widget no navega, no abre ventanas ni toca otras.
- Recursos externos: solo imágenes de las CDN de emotes e insignias y fuentes de Google Fonts. Lo tuyo va en tu biblioteca.