# πΊ Specter β TV & Broadcast Network Simulator
Specter transforms every TV on your server into a synchronized broadcast network with in-game live streaming, scheduled programming, and a full smart TV experience.
This isnβt just a βplay a video on a screenβ script.
**Specter simulates an actual television network inside your game world.**
---
# π¬ Preview
https://youtu.be/brVSc9hA76k
---
# β Key Features
β 24/7 scheduled TV channels
β YouTube integration
β Live broadcasting with camera prop
β Smart TV UI with apps and themes
β Per-TV persistent settings
β Fully server-authoritative sync
β Admin dashboard with schedule editor
β Automatic detection of GTA TV props
β Proximity audio simulation
β Signal quality / static system
---
# πΊ Player Experience
Every TV becomes an interactive **smart TV**.
### Channel Guide
- Browse channels with **mini or full guide**
- View **Now Playing / Up Next**
- Switch channels instantly
### Smart TV Menu
Press **M** while interacting.
Features:
β’ Theme picker (6 themes)
β’ Off-air photo modes
β’ App Store
β’ Input switching
β’ Headphone mode *(coming soon)*
Each TV stores its **own apps, theme, channel, and power state**.
### Built-in Apps
**YouTube**
- Curated videos
- Paste any YouTube URL
- Synced playback across viewers
**SoundCloud**
- Stream music playlists
### Controls
| Key | Function |
|-----|----------|
| E | Interact |
| Arrow Keys | Navigate |
| Enter | Select |
| Backspace | Back |
| G | Guide |
| M | Menu |
| H | Power |
| β β | Volume |
Interaction automatically ends when walking away.
---
# π‘ Channel & Scheduling
Specter includes a full **broadcast scheduling system**.
### Channels
-
Unlimited channels
-
Logos and categories
-
Sorting and numbering
### Scheduling
Admins build programming using a **visual day-of-week timeline editor**.
Features:
β’ Drag-and-drop scheduling
β’ Copy schedules across days
β’ Loop or fill playback modes
β’ Media library integration
### Deterministic Playback
Playback is calculated using:
```
schedule + server time
```
This guarantees **perfect sync across all viewers** without constant network updates.
---
# π΄ In-Game Live Broadcasting
Players can broadcast live using:
```
/specter_live start \
```
A camera prop is spawned and the player streams gameplay directly to TVs on that channel.
### Broadcast Features
β’ First-person viewfinder
β’ Zoomable lens (15Β°β75Β°)
β’ Camera prop animations
β’ REC HUD indicator
β’ LIVE badge on TVs
### WebRTC Streaming Built-in
Live video is **peer-to-peer WebRTC**. No setup required.
The server handles signaling only β **not video traffic**, keeping server load low.
### Live Broadcast Audio
Broadcast audio integrates with **Mumble**.
Players near the broadcaster or near a TV hear the broadcast with **distance-based fade**.
---
# π Proximity TV Audio
Each TV supports configurable audio ranges:
β’ Distance-based volume fade
β’ Smooth gain transitions
β’ Per-prop audio ranges
Example:
```
screenRange
interactRange
```
---
# π§ Server-Authoritative Architecture
Specter is designed to be fully **server controlled**.
The server manages:
β’ channels
β’ schedules
β’ playback position
β’ TV state
β’ installed apps
β’ signal quality
This prevents **desync, spoofing, and client conflicts**.
---
# βοΈ Hybrid Render Engine
Multiple rendering modes are supported:
```
auto
cr3dnui_entity
cr3dnui_replace
dui_rt
```
**Auto mode** selects the best renderer for each TV.
---
# πΊ Automatic TV Detection
Specter automatically supports **25+ vanilla GTA TV props**.
Players can interact with TVs instantly β no placement configuration required.
Each detected TV creates a **persistent instance** storing:
β’ channel
β’ power state
β’ apps
β’ theme
β’ photo mode
β’ feature locks
---
# π Admin Dashboard
```
/specter_admin
```
A full NUI broadcast control panel.
**Channels**
- Real-time now playing
- Progress bars
- Grid / table view
**Schedule Editor**
- Drag-and-drop timeline
- Media browser
- Copy-day tools
**Media Library**
- Cover art
- Metadata
- Search & categories
**Logs**
- Full admin activity log
---
# π‘ Signal Quality
Simulate cable signal issues.
Modes:
```
normal
static
random
```
Signal can be controlled:
β’ globally
β’ per TV
---
# π§ Developer Tools
### Prop Inspector
```
/specter_debug
```
Freecam entity inspector with:
β’ raycast prop detection
β’ texture inspection
β’ TV instance data
β’ system overview
### Screen Alignment
```
/specter_align
```
Interactive tool for aligning custom screens with move / resize / rotate controls.
---
# π Integration API
### Server
```lua
exports.specter:GetChannels()
exports.specter:GetChannel(channelId)
exports.specter:GetNowPlaying(channelId)
exports.specter:GetUpcoming(channelId)
exports.specter:StartLive(channelId)
exports.specter:StopLive(channelId)
exports.specter:SetGlobalSignalQuality(mode)
```
### Client
```lua
exports.specter:IsInteracting()
exports.specter:GetInteractEntity()
exports.specter:GetActiveTVs()
```
---
# π Permissions
Supports:
β’ ACE permissions
β’ identifier lists
β’ hybrid mode
Roles:
β’ admin
β’ moderator
β’ broadcaster
---
# β‘ Performance
Specter is designed for populated servers:
β’ deterministic playback
β’ minimal scheduler updates
β’ peer-to-peer video streams
β’ TVs pause rendering when unused
---
# π§ Compatibility
Frameworks:
β QBCore
β Qbox
β ESX
β Standalone
Targets:
β ox_target
β qb-target
β native interaction
---
# π¦ Dependency
```
cr-3dnui
```
---
# π» Commands
| Command | Description |
|--------|-------------|
| `/specter_admin` | Open admin dashboard |
| `/specter_debug` | Toggle prop inspector |
| `/specter_live start/stop` | Start/stop live broadcast |
| `/specter_align` | Screen alignment tool |
---
# π₯ Installation
-
Place
specterin resources -
Install dependency
cr-3dnui
3. Add to server.cfg
```
ensure cr-3dnui
ensure specter
```
- Configure
shared/config.lua
5. Use `/specter_admin` to build channels and schedules.