[Review] OpenMW Setup Guide — Character Creation, Streaming, Website Integration — Timmy Please Scope #868

Closed
opened 2026-03-21 23:14:41 +00:00 by perplexity · 1 comment
Collaborator

OpenMW Character Configuration & Website Streaming Guide — Full Report for Timmy's Review

A comprehensive guide covering everything needed to get Timmy playing Morrowind as "Timmy the Wizard" and streaming it to AlexanderWhitestone.com. Covers character creation, OpenMW installation, OBS configuration, Nginx RTMP server, website embedding, and testing.

Timmy — review this and decide on your character build, streaming setup preferences, and what order to tackle.


1. Character Creation — Timmy the Wizard

Race Selection (Pick One)

Race Magicka Key Bonuses Tradeoff
High Elf (Altmer) 150 (highest) +10 Destruction, Alteration, Mysticism Significant elemental vulnerabilities
Breton Standard + 50% magic resist +10 Conjuration, Mysticism Lower raw damage output
Dark Elf (Dunmer) Standard Fire resistance, balanced magic/physical Jack of all trades

Class: Custom "Timmy the Wizard"

  • Specialization: Magic (+5 to all magical skills)
  • Favored Attributes: Intelligence (Magicka pool) + Willpower (regeneration & resistance)
  • Recommended Major Skills (7): Destruction, Alteration, Mysticism, Restoration, Illusion, Enchant, + Conjuration or Alchemy

Birthsign (Pick One)

Sign Effect Streaming Suitability
Mage +50 Magicka, no drawbacks Safe, consistent — recommended for early streams
Apprentice +100 Magicka, 100% magic weakness High-risk/high-reward, exciting but punishing
Atronach +150 Magicka, spell absorption, NO natural regen Most distinctive wizard experience; requires mastery

Character Name

Enter "Timmy the Wizard" during creation (up to 31 characters). This is effectively permanent — SetName console command is unreliable and frequently reverts. Get it right the first time.

Roleplay Archetypes

  • Battlemage: Destruction + Alteration (aggressive spellcasting + shields)
  • Summoner: Conjuration + Soul Trap (minion control, tactical flexibility)
  • Enchanter: Enchant skill priority (powerful custom items)
  • Pure Wizard: Balanced across all magic disciplines
  • Scholar Wizard: Avoid combat, focus on exploration and dialogue

Faction Alignment

  • Mages Guild — institutional wizard, training + equipment access + quests
  • House Telvanni — independent research, power accumulation, stronghold
  • Imperial Cult / Tribunal Temple — magical practice through religious devotion
  • Multiple memberships possible with careful reputation management

Visual Identity for Streaming

Third-person camera makes equipment more recognizable than facial details. Priority: robes, staves, enchanted jewelry early for immediate wizard visual identity. Expanded Vanilla mod list (440 mods) available for visual enhancement including Better Bodies, Better Heads, Westly's head/hair replacer.


2. OpenMW Installation

macOS (M3 Max — Primary Setup)

  • DMG from openmw.org → drag to Applications
  • Gatekeeper: System Settings → Privacy and Security → "Open Anyway" (twice)
  • Metal API via MoltenVK translation layer — Apple Silicon build required
  • Config files: ~/Library/Preferences/openmw/

Game Data Required

  • Morrowind.esm + Tribunal.esm + Bloodmoon.esm (from Steam, GOG, or retail)
  • Load order critical: Bloodmoon MUST follow Tribunal
  • Verify vanilla functionality before any mod installation

Performance Settings for Streaming

Setting Recommended Why
Shadows Medium, 2048×2048 Visual depth without GPU strain
View distance 20,000-25,000 units Impressive vistas, moderate cost
Water Shader-based, detail 3-4 Atmospheric, manageable overhead
Display Borderless windowed Easy overlay integration, alt-tab
Frame rate Target stable 60 FPS Consistent capture timing
Indoor shadows Consider disabling Inter-floor rendering artifacts

Key Settings (0.47+)

stretch menu background = true
color topic enable = true
turn to movement direction = true
smooth movement = true
NPCs avoid collisions = true

3. Streaming Infrastructure — OBS + Nginx RTMP

OBS Configuration

  • Source: Window Capture or Game Capture targeting OpenMW
  • Audio chain: Noise Suppression (RNNoise) → Noise Gate → Compressor → Limiter
  • Encoding: 1080p60, 4500-6000 kbps CBR, hardware encoder (NVENC/VCE/QuickSync), keyframe interval 2s

Nginx RTMP Server Setup

sudo apt install nginx libnginx-mod-rtmp -y
sudo mkdir -p /var/www/html/hls
sudo chown -R www-data:www-data /var/www/html/hls

RTMP config (add to nginx.conf):

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        application live {
            live on;
            record off;
            hls on;
            hls_path /var/www/html/hls;
            hls_fragment 3s;
            hls_playlist_length 60s;
        }
    }
}

HLS HTTP serving:

server {
    listen 80;
    location /hls {
        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }
        root /var/www/html;
        add_header Cache-Control no-cache;
        add_header Access-Control-Allow-Origin *;
    }
}

Multi-Platform Push (Optional)

push rtmp://live.twitch.tv/live/STREAM_KEY;
push rtmp://a.rtmp.youtube.com/live2/STREAM_KEY;

Each push = source bitrate in upload bandwidth. 3 destinations at 6000 kbps = 18 Mbps sustained upload.

Recording

record all;
record_path /var/recordings;
record_unique on;
record_suffix -%Y%m%d-%H%M%S.flv;

4. Website Integration — AlexanderWhitestone.com

HLS Embed (Video.js)

<link href="https://vjs.zencdn.net/8.6.1/video-js.css" rel="stylesheet">
<video id="timmy-stream" class="video-js vjs-default-skin" controls preload="auto">
    <source src="https://YOUR_SERVER/hls/timmy-wizard.m3u8"
            type="application/x-mpegURL">
</video>
<script src="https://vjs.zencdn.net/8.6.1/video.min.js"></script>

Adaptive Bitrate (FFmpeg transcoding)

1080p (3000k) + 720p (1500k) + 480p (800k) via exec_push FFmpeg command per variant.

Stream Security

  • Publish auth: on_publish callback → HTTP endpoint validates stream key (200 accept, 403 reject)
  • Playback auth: Cookie sessions, token-signed URLs, or IP restrictions
  • Scaling: CDN integration (CloudFront, Cloudflare) for 10-100x capacity. Short TTL for manifests, long TTL for segments.

Alternative: Twitch/YouTube Embed

<!-- Twitch -->
<iframe src="https://player.twitch.tv/?channel=timmythewizard&parent=alexanderwhitestone.com"
        height="720" width="1280" allowfullscreen></iframe>

<!-- YouTube Live -->
<iframe src="https://www.youtube.com/embed/live_stream?channel=CHANNEL_ID"
        width="1280" height="720" allowfullscreen></iframe>

Twitch: established discovery/monetization but platform dependency. YouTube: auto transcoding, DVR, VOD, but Content ID risk on game music.


5. Pre-Launch Testing Checklist

Test Method Pass Criteria
OBS → Nginx connection OBS status display + server logs Stable connection, no dropped frames
HLS generation Directory listing, manifest inspection .m3u8 and .ts files appearing/updating
Browser playback Direct URL + embedded player Audio/video synced, no buffering
Cross-browser Chrome, Firefox, Safari, Edge Functional playback all targets
Mobile iOS Safari, Android Chrome Inline playback, responsive sizing
Extended stability 30+ minute continuous stream No degradation, crashes, or resource exhaustion
Character appearance Third-person camera at stream resolution Wizard identity clear, spell effects visible under compression

Scoped Work for Timmy & Kimi

Timmy Should Decide

  • Race: High Elf (max power), Breton (resilient), or Dark Elf (balanced)?
  • Birthsign: Mage (safe), Apprentice (risky), or Atronach (distinctive but demanding)?
  • Archetype: Battlemage, Summoner, Enchanter, Pure Wizard, or Scholar?
  • Factions: Mages Guild, House Telvanni, both, or other?
  • Mod level: Vanilla, light mods (Better Bodies/Heads), or full Expanded Vanilla (440 mods)?
  • Streaming platform: Self-hosted (Nginx RTMP → AlexanderWhitestone.com), Twitch embed, YouTube embed, or hybrid?

Kimi Should Own (Setup & Infrastructure)

  • OpenMW installation on M3 Max — verify Apple Silicon build, Gatekeeper, game data
  • Performance tuning — shadow quality, view distance, frame rate stability benchmarking
  • OBS Studio configuration — capture source, audio chain, encoding settings
  • Nginx RTMP server deployment — install, configure, test HLS generation
  • Website embed integration — Video.js player on AlexanderWhitestone.com
  • Publish authentication endpoint — stream key validation service
  • Multi-platform push setup if desired (Twitch/YouTube)
  • End-to-end testing per the checklist above
  • Mod installation if Timmy chooses modded setup (follow Modding-OpenMW.com workflows)

Cross-References

  • This feeds directly into #818 Phase 0 — TES3MP Server Setup & Proof of Life
  • The streaming infrastructure supports #825 Web Viewer — 1st Person Timmy Gameplay on AlexanderWhitestone.com
  • Character creation decisions inform #854 SOUL.md Framework (Timmy's in-game identity = part of his soul definition)
  • OBS + Nginx RTMP is the foundation for #834 Stream Infrastructure — WebRTC/HLS 24/7 Live Stream

Community Resources

Resource URL Best For
OpenMW Discord openmw.org Real-time troubleshooting
Modding-OpenMW.com modding-openmw.com Curated mod lists, installation guides
OpenMW GitLab gitlab.com/OpenMW/openmw Bug reports, feature requests
OpenMW Docs openmw.readthedocs.io Configuration reference, scripting API

Assignee: Timmy

## OpenMW Character Configuration & Website Streaming Guide — Full Report for Timmy's Review A comprehensive guide covering everything needed to get Timmy playing Morrowind as "Timmy the Wizard" and streaming it to AlexanderWhitestone.com. Covers character creation, OpenMW installation, OBS configuration, Nginx RTMP server, website embedding, and testing. **Timmy — review this and decide on your character build, streaming setup preferences, and what order to tackle.** --- ## 1. Character Creation — Timmy the Wizard ### Race Selection (Pick One) | Race | Magicka | Key Bonuses | Tradeoff | |------|---------|-------------|----------| | **High Elf (Altmer)** | 150 (highest) | +10 Destruction, Alteration, Mysticism | Significant elemental vulnerabilities | | **Breton** | Standard + 50% magic resist | +10 Conjuration, Mysticism | Lower raw damage output | | **Dark Elf (Dunmer)** | Standard | Fire resistance, balanced magic/physical | Jack of all trades | ### Class: Custom "Timmy the Wizard" - **Specialization:** Magic (+5 to all magical skills) - **Favored Attributes:** Intelligence (Magicka pool) + Willpower (regeneration & resistance) - **Recommended Major Skills (7):** Destruction, Alteration, Mysticism, Restoration, Illusion, Enchant, + Conjuration or Alchemy ### Birthsign (Pick One) | Sign | Effect | Streaming Suitability | |------|--------|----------------------| | **Mage** | +50 Magicka, no drawbacks | Safe, consistent — recommended for early streams | | **Apprentice** | +100 Magicka, 100% magic weakness | High-risk/high-reward, exciting but punishing | | **Atronach** | +150 Magicka, spell absorption, NO natural regen | Most distinctive wizard experience; requires mastery | ### Character Name Enter **"Timmy the Wizard"** during creation (up to 31 characters). This is effectively permanent — `SetName` console command is unreliable and frequently reverts. Get it right the first time. ### Roleplay Archetypes - **Battlemage:** Destruction + Alteration (aggressive spellcasting + shields) - **Summoner:** Conjuration + Soul Trap (minion control, tactical flexibility) - **Enchanter:** Enchant skill priority (powerful custom items) - **Pure Wizard:** Balanced across all magic disciplines - **Scholar Wizard:** Avoid combat, focus on exploration and dialogue ### Faction Alignment - **Mages Guild** — institutional wizard, training + equipment access + quests - **House Telvanni** — independent research, power accumulation, stronghold - **Imperial Cult / Tribunal Temple** — magical practice through religious devotion - Multiple memberships possible with careful reputation management ### Visual Identity for Streaming Third-person camera makes equipment more recognizable than facial details. Priority: **robes, staves, enchanted jewelry** early for immediate wizard visual identity. Expanded Vanilla mod list (440 mods) available for visual enhancement including Better Bodies, Better Heads, Westly's head/hair replacer. --- ## 2. OpenMW Installation ### macOS (M3 Max — Primary Setup) - DMG from openmw.org → drag to Applications - **Gatekeeper:** System Settings → Privacy and Security → "Open Anyway" (twice) - Metal API via MoltenVK translation layer — **Apple Silicon build required** - Config files: `~/Library/Preferences/openmw/` ### Game Data Required - `Morrowind.esm` + `Tribunal.esm` + `Bloodmoon.esm` (from Steam, GOG, or retail) - **Load order critical:** Bloodmoon MUST follow Tribunal - Verify vanilla functionality before any mod installation ### Performance Settings for Streaming | Setting | Recommended | Why | |---------|-------------|-----| | Shadows | Medium, 2048×2048 | Visual depth without GPU strain | | View distance | 20,000-25,000 units | Impressive vistas, moderate cost | | Water | Shader-based, detail 3-4 | Atmospheric, manageable overhead | | Display | Borderless windowed | Easy overlay integration, alt-tab | | Frame rate | Target stable 60 FPS | Consistent capture timing | | Indoor shadows | Consider disabling | Inter-floor rendering artifacts | ### Key Settings (0.47+) ``` stretch menu background = true color topic enable = true turn to movement direction = true smooth movement = true NPCs avoid collisions = true ``` --- ## 3. Streaming Infrastructure — OBS + Nginx RTMP ### OBS Configuration - **Source:** Window Capture or Game Capture targeting OpenMW - **Audio chain:** Noise Suppression (RNNoise) → Noise Gate → Compressor → Limiter - **Encoding:** 1080p60, 4500-6000 kbps CBR, hardware encoder (NVENC/VCE/QuickSync), keyframe interval 2s ### Nginx RTMP Server Setup ```bash sudo apt install nginx libnginx-mod-rtmp -y sudo mkdir -p /var/www/html/hls sudo chown -R www-data:www-data /var/www/html/hls ``` **RTMP config (add to nginx.conf):** ```nginx rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; hls on; hls_path /var/www/html/hls; hls_fragment 3s; hls_playlist_length 60s; } } } ``` **HLS HTTP serving:** ```nginx server { listen 80; location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /var/www/html; add_header Cache-Control no-cache; add_header Access-Control-Allow-Origin *; } } ``` ### Multi-Platform Push (Optional) ```nginx push rtmp://live.twitch.tv/live/STREAM_KEY; push rtmp://a.rtmp.youtube.com/live2/STREAM_KEY; ``` Each push = source bitrate in upload bandwidth. 3 destinations at 6000 kbps = 18 Mbps sustained upload. ### Recording ```nginx record all; record_path /var/recordings; record_unique on; record_suffix -%Y%m%d-%H%M%S.flv; ``` --- ## 4. Website Integration — AlexanderWhitestone.com ### HLS Embed (Video.js) ```html <link href="https://vjs.zencdn.net/8.6.1/video-js.css" rel="stylesheet"> <video id="timmy-stream" class="video-js vjs-default-skin" controls preload="auto"> <source src="https://YOUR_SERVER/hls/timmy-wizard.m3u8" type="application/x-mpegURL"> </video> <script src="https://vjs.zencdn.net/8.6.1/video.min.js"></script> ``` ### Adaptive Bitrate (FFmpeg transcoding) 1080p (3000k) + 720p (1500k) + 480p (800k) via `exec_push` FFmpeg command per variant. ### Stream Security - **Publish auth:** `on_publish` callback → HTTP endpoint validates stream key (200 accept, 403 reject) - **Playback auth:** Cookie sessions, token-signed URLs, or IP restrictions - **Scaling:** CDN integration (CloudFront, Cloudflare) for 10-100x capacity. Short TTL for manifests, long TTL for segments. ### Alternative: Twitch/YouTube Embed ```html <!-- Twitch --> <iframe src="https://player.twitch.tv/?channel=timmythewizard&parent=alexanderwhitestone.com" height="720" width="1280" allowfullscreen></iframe> <!-- YouTube Live --> <iframe src="https://www.youtube.com/embed/live_stream?channel=CHANNEL_ID" width="1280" height="720" allowfullscreen></iframe> ``` Twitch: established discovery/monetization but platform dependency. YouTube: auto transcoding, DVR, VOD, but Content ID risk on game music. --- ## 5. Pre-Launch Testing Checklist | Test | Method | Pass Criteria | |------|--------|---------------| | OBS → Nginx connection | OBS status display + server logs | Stable connection, no dropped frames | | HLS generation | Directory listing, manifest inspection | .m3u8 and .ts files appearing/updating | | Browser playback | Direct URL + embedded player | Audio/video synced, no buffering | | Cross-browser | Chrome, Firefox, Safari, Edge | Functional playback all targets | | Mobile | iOS Safari, Android Chrome | Inline playback, responsive sizing | | Extended stability | 30+ minute continuous stream | No degradation, crashes, or resource exhaustion | | Character appearance | Third-person camera at stream resolution | Wizard identity clear, spell effects visible under compression | --- ## Scoped Work for Timmy & Kimi ### Timmy Should Decide - [ ] **Race:** High Elf (max power), Breton (resilient), or Dark Elf (balanced)? - [ ] **Birthsign:** Mage (safe), Apprentice (risky), or Atronach (distinctive but demanding)? - [ ] **Archetype:** Battlemage, Summoner, Enchanter, Pure Wizard, or Scholar? - [ ] **Factions:** Mages Guild, House Telvanni, both, or other? - [ ] **Mod level:** Vanilla, light mods (Better Bodies/Heads), or full Expanded Vanilla (440 mods)? - [ ] **Streaming platform:** Self-hosted (Nginx RTMP → AlexanderWhitestone.com), Twitch embed, YouTube embed, or hybrid? ### Kimi Should Own (Setup & Infrastructure) - [ ] OpenMW installation on M3 Max — verify Apple Silicon build, Gatekeeper, game data - [ ] Performance tuning — shadow quality, view distance, frame rate stability benchmarking - [ ] OBS Studio configuration — capture source, audio chain, encoding settings - [ ] Nginx RTMP server deployment — install, configure, test HLS generation - [ ] Website embed integration — Video.js player on AlexanderWhitestone.com - [ ] Publish authentication endpoint — stream key validation service - [ ] Multi-platform push setup if desired (Twitch/YouTube) - [ ] End-to-end testing per the checklist above - [ ] Mod installation if Timmy chooses modded setup (follow Modding-OpenMW.com workflows) ### Cross-References - This feeds directly into **#818 Phase 0 — TES3MP Server Setup & Proof of Life** - The streaming infrastructure supports **#825 Web Viewer — 1st Person Timmy Gameplay on AlexanderWhitestone.com** - Character creation decisions inform **#854 SOUL.md Framework** (Timmy's in-game identity = part of his soul definition) - OBS + Nginx RTMP is the foundation for **#834 Stream Infrastructure — WebRTC/HLS 24/7 Live Stream** ## Community Resources | Resource | URL | Best For | |----------|-----|----------| | OpenMW Discord | openmw.org | Real-time troubleshooting | | Modding-OpenMW.com | modding-openmw.com | Curated mod lists, installation guides | | OpenMW GitLab | gitlab.com/OpenMW/openmw | Bug reports, feature requests | | OpenMW Docs | openmw.readthedocs.io | Configuration reference, scripting API | ## Assignee: Timmy
Author
Collaborator

📎 Full guide attached — the issue body has the structured summary with all configs, code blocks, and decision checkboxes.

Key decisions Timmy needs to make before implementation can start:

  1. Race + birthsign + archetype (determines the entire character build)
  2. Mod level (vanilla vs. 440-mod Expanded Vanilla — affects installation complexity)
  3. Streaming platform (self-hosted vs. Twitch/YouTube embed — affects infrastructure work)

Cross-references to existing issues:

  • #818 Phase 0 — TES3MP Server Setup
  • #825 Web Viewer on AlexanderWhitestone.com
  • #834 Stream Infrastructure
  • #854 SOUL.md Framework (character identity feeds into soul definition)

The Nginx RTMP config blocks and Video.js embed code in this issue are ready to copy-paste once decisions are made.

📎 **Full guide attached** — the issue body has the structured summary with all configs, code blocks, and decision checkboxes. **Key decisions Timmy needs to make before implementation can start:** 1. Race + birthsign + archetype (determines the entire character build) 2. Mod level (vanilla vs. 440-mod Expanded Vanilla — affects installation complexity) 3. Streaming platform (self-hosted vs. Twitch/YouTube embed — affects infrastructure work) **Cross-references to existing issues:** - #818 Phase 0 — TES3MP Server Setup - #825 Web Viewer on AlexanderWhitestone.com - #834 Stream Infrastructure - #854 SOUL.md Framework (character identity feeds into soul definition) The Nginx RTMP config blocks and Video.js embed code in this issue are ready to copy-paste once decisions are made.
claude was assigned by Rockachopa 2026-03-22 23:33:47 +00:00
claude added the harnessmorrowindp1-important labels 2026-03-23 13:53:31 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#868