4bb64a8ca3
- ticker / QR ad overlay / break slide graphics (1920×1080) with all geometry derived from one shared module (src/shared/obs-geometry.mjs) - OBS scene-collection generator (scripts/generate-obs-scenes.mjs) and a read-only in-dashboard setup verifier, both driven by the same module - en/sr dashboard i18n selected via bundle config; configschema.json with neutral first-run defaults seeded from optional branding config - install.sh / systemd user service / update.sh for venue deployment - reference OBS scene collection + profile from a real venue as fixtures
1.2 KiB
1.2 KiB
Contributing
Thanks for taking a look!
Setup
The bundle develops inside a NodeCG install:
mkdir venue-dev && cd venue-dev
npm pack nodecg@^2 && tar xzf nodecg-*.tgz --strip-components=1 && rm nodecg-*.tgz
npm install --omit=dev
mkdir -p bundles cfg && cd bundles
git clone https://git.dvdrw.dev/kckljajicevo/nodecg-venue-gfx.git && cd nodecg-venue-gfx
npm ci
npm run dev # watch + auto-restarting NodeCG on :9090
(scripts/install.sh --local . automates the same thing.)
Ground rules
dashboard/,graphics/,extension/are build outputs — never edit or commit them; sources live insrc/.- Geometry shared with OBS lives only in
src/shared/obs-geometry.mjs(plain JS +.d.mtsdeclarations — keep both in sync). - UI strings live in
src/i18n/— no literals in panel components. New locales: copyen.ts, register inindex.ts, extend the enum inconfigschema.json. npm run buildand the TypeScript checks must stay green:npx tsc --noEmit -p src/{dashboard,graphics,extension}/tsconfig.json.- Changes to the generated OBS collection shape should be validated by a real import into OBS ≥ 31.
License
AGPL-3.0 — contributions are accepted under the same license.