Notifies you when a public OpenFront lobby matches your filters (mode, team format, capacity, modifiers) via in-page highlight, sound, and optional desktop notifications. Never auto-joins.
A TypeScript userscript for OpenFront v0.31+ that watches public lobbies and notifies you when one matches your filters — via in-page highlight, sound, and optional desktop notification. It also enhances OpenFront's native join modal. Never auto-joins.
Lobby discovery
FFA and Team public lobbies by mode, format, team count, capacity, and modifiersFormat (Humans Vs Nations) and Number of teams (2–7)FFA, players-per-team for Team2× lock pins the max to twice the minimumAny → Required → Excluded, grouped by Map / Gameplay / EconomyAlerts
?live URL transitionSmart UX
1M, 5M, 25Mx2v0.31+OpenFront Game Notifier panel, enable FFA, Team, or both.Team, optionally toggle Humans Vs Nations and pick allowed team counts (2–7)..
├── src/
│ ├── config/ # constants, theme tokens
│ ├── data/
│ │ └── LobbyDataManager.ts # WebSocket + HTTP polling fallback
│ ├── modules/
│ │ └── lobby-discovery/
│ │ ├── CurrentPlayerHighlighter.ts # additive native-modal enhancer
│ │ ├── LobbyDiscoveryEngine.ts # criteria matching
│ │ ├── LobbyDiscoveryHelpers.ts # pure helpers
│ │ ├── LobbyDiscoveryTypes.ts
│ │ ├── LobbyDiscoveryUI.ts # panel UI
│ │ ├── RangeSlider.ts # per-team log-scaled slider component
│ │ └── RangeSliderHelpers.ts # pure stop/position helpers
│ ├── styles/
│ ├── types/
│ ├── utils/
│ │ ├── BrowserNotificationUtils.ts
│ │ ├── LobbyUtils.ts
│ │ ├── SoundUtils.ts
│ │ └── URLObserver.ts
│ └── main.ts
├── tests/
├── dist/bundle.user.js
├── package.json
├── tsconfig.json
├── esbuild.config.js
└── vitest.config.js
Prerequisites: Node.js 18+ and npm.
npm install
npm run build:prod # writes dist/bundle.user.js
Common scripts:
npm run dev # esbuild watch
npm run build:prod # production bundle
npm run test # vitest --run (use --watch for TDD)
npm run type-check # tsc --noEmit
OF_LOBBY_DISCOVERY_SETTINGS — criteria, sound/desktop preferences, 2× toggleVitest with JSDOM. The suite covers the matching engine, helpers, panel UI, the native-modal highlighter, and the LobbyDataManager connection fallback.
npm run test
npm run test -- --watch
npm run test -- --coverage
config → types → styles → utils → data → modules → main).@/ path aliases.npm run test and npm run type-check before shipping.dist/bundle.user.js for releases (npm run build:prod).UNLICENSED — private project.
DeLoVaN · SyntaxMenace · DeepSeek · Claude