Skip to content

Commit 6df1db0

Browse files
docs: update all documentation for overlay-only Quick Setup
Files updated: - docs/getting-started.md: Complete rewrite — reflects overlay-only Quick Setup (ring + bar + infrastructure), removes references to auto-created text sources, adds bar overlay step, updated diagrams - docs/architecture.md: Section 21 description updated - docs/automation-guide.md: Status/AFK section — no longer references SP Status as auto-created, documents overlay-native status display - docs/faq.md: AFK status answer updated — SP Status is manual-only, status appears automatically in overlays and dock All docs now accurately reflect the current codebase where: - Quick Setup creates 8 items (2 overlays + 6 infrastructure) - Text sources are optional, manually created, documented in overlay-customization.md#manual-text-sources-advanced
1 parent dac7291 commit 6df1db0

5 files changed

Lines changed: 44 additions & 70 deletions

File tree

docs/architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ The script is divided into exactly 23 sections, labeled with standard `---` comm
7070
18. **Hotkey Callbacks**: Thin integration layer to the Controls.
7171
19. **Frontend Events**: Hooks for stream/recording toggles.
7272
20. **Source/Scene Enumeration**: OBS SDK dropdown population logic.
73-
21. **Quick Setup Wizard**: Automated source-and-overlay generator that places the text sources, `SP Status`, overlay, background image/video/music sources, and alert source into the active scene.
73+
21. **Quick Setup Wizard**: Automated overlay-and-source generator that creates the ring overlay (`SP Overlay`), bar overlay (`SP Overlay Bar`), background image/video sources (with auto-fit-to-canvas), background music, and alert sound in the active scene. Text sources (SP Timer, SP Session, etc.) are no longer auto-created — they remain functional when manually assigned via the script settings.
7474
22. **OBS Script Interface**: Standard OBS `script_properties` and `script_update`.
7575
23. **Lifecycle**: OBS `script_load`, `script_save`, `script_unload`.
7676

docs/automation-guide.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Automation Guide
1+
# Automation Guide
22

33
SessionPulse can automate nearly every aspect of your OBS setup based on your session state. This guide covers each automation feature with step-by-step setup.
44

@@ -273,18 +273,18 @@ Show a manual `BRB`, `AFK`, or custom note on stream without stopping the timer.
273273

274274
### Setup
275275

276-
1. Use Quick Setup so it creates `SP Status` and places it in your active scene
277-
2. In the script panel:
276+
1. In the script panel:
278277
- Type your message into **Status Message**
279278
- Set **Duration (minutes)** to `0` to keep it visible until cleared, or a positive number to auto-clear it
280279
- Click **Show Status**
281-
3. Click **Clear Status** when you want to remove it
280+
2. Click **Clear Status** when you want to remove it
282281

283282
### Behavior
284283

285-
- The message is written into the `SP Status` text source
284+
- The status message appears automatically in the **ring overlay**, **bar overlay**, and **control dock**
285+
- If you've manually created an `SP Status` text source (see [Manual Text Sources](overlay-customization.md#manual-text-sources-advanced)), it will also update there
286286
- The timer keeps running normally underneath it
287-
- Active status state is exposed in `session_state.json`, so the dock can surface it too
287+
- Active status state is exposed in `session_state.json`, so external tools can surface it too
288288

289289
---
290290

docs/faq.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,10 +125,11 @@ Quick Setup creates `SP Alert Sound` automatically, so in most cases you only ne
125125

126126
### How do I show an AFK / BRB / custom status message?
127127

128-
- Use the built-in `SP Status` text source created by Quick Setup.
128+
- You can create an `SP Status` text source manually (see [Manual Text Sources](overlay-customization.md#manual-text-sources-advanced)), or use the overlay's built-in status display.
129129
- In the script panel, type your message in **Status Message** and click **Show Status**.
130130
- Set **Duration (minutes)** to `0` to keep it visible until cleared, or a positive number to auto-clear it.
131131
- Click **Clear Status** when you return.
132+
- The status message also appears in the dock, ring overlay, and bar overlay automatically.
132133

133134
### Background image or video doesn't change
134135

docs/getting-started.md

Lines changed: 34 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ You should see the script appear in the scripts list. The Script Log (bottom pan
3636

3737
```
3838
[SessionPulse] Loaded v5.4.1
39-
[SessionPulse] State saved → session_state.json
4039
```
4140

4241
If you see errors instead, check the [FAQ](faq.md).
@@ -51,54 +50,25 @@ Click **one button** and SessionPulse creates everything for you:
5150
2. Done.
5251

5352
This automatically:
54-
- ✅ Creates 5 text sources (`SP Timer`, `SP Session`, `SP Count`, `SP Progress`, `SP Status`)
53+
- ✅ Creates the **ring overlay** (`SP Overlay` — circular timer, 400×400)
54+
- ✅ Creates the **bar overlay** (`SP Overlay Bar` — horizontal status strip, 1920×48)
5555
- ✅ Creates the internal control source (`SP Control`) used by the dock and overlay controls
56-
- ✅ Creates a ring overlay Browser Source (`SP Overlay`)
57-
- ✅ Creates placeholder background sources (`SP Background Image`, `SP Background Video`, `SP Background Music`)
58-
- ✅ Creates an alert Media Source (`SP Alert Sound`)
59-
- ✅ Adds the visible sources to your currently active scene
60-
-Wires all sources to the script dropdowns
56+
- ✅ Creates background sources (`SP Background Image`, `SP Background Video`)
57+
- ✅ Creates a looping music source (`SP Background Music`)
58+
- ✅ Creates an alert sound source (`SP Alert Sound`)
59+
- ✅ Adds all sources to your currently active scene
60+
-Auto-fits background sources to your canvas (any resolution)
6161

6262
Check the Script Log to confirm:
6363
```
64-
[SessionPulse] Quick Setup: ✓ Complete! Created 11 items. Press Start to begin!
64+
[SessionPulse] Quick Setup: ✓ Complete! Created 8 items. Press Start to begin!
6565
```
6666

67-
> **Skip to [Step 4: Set Up Hotkeys](#step-4-set-up-hotkeys)**sources, scenes, and overlay are ready.
67+
> **Skip to [Step 4: Set Up Hotkeys](#step-4-set-up-hotkeys)**overlays and sources are ready.
6868
6969
If OBS closes during a session, reopen OBS and use **Resume Previous Session** in the script panel to continue from the exact saved timer value and progress position.
7070

71-
---
72-
73-
<details>
74-
<summary><strong>Alternative: Manual Setup</strong> (if you prefer to create sources yourself)</summary>
75-
76-
### Create Text Sources
77-
78-
Create these in your scene before configuring the script:
79-
80-
| Source Name | Purpose | Required? |
81-
|------------|---------|-----------|
82-
| `Timer` | Shows countdown `24:59` | ✅ Yes |
83-
| `Session` | Shows `Focus Time`, `Short Break`, etc. | Recommended |
84-
| `Focus Count` | Shows `Done: 3/6` | Optional |
85-
| `Progress` | Shows `████░░░░` bar | Optional |
86-
87-
1. In your **Scene**, click **+** (under Sources)
88-
2. Select **Text (GDI+)** (Windows) or **Text (FreeType 2)** (Mac/Linux)
89-
3. Name it and click **OK**
90-
4. Repeat for each source
91-
92-
### Connect Sources to the Script
93-
94-
1. Go to **Tools****Scripts** → select **SessionPulse**
95-
2. In the script settings panel, use the dropdown menus:
96-
- **Timer Text Source** → select your timer source
97-
- **Session Message Source** → select your session source
98-
- **Focus Count Source** → select your count source
99-
- **Progress Bar Source** → select your progress source
100-
101-
</details>
71+
> 💡 **Need individual text sources?** Quick Setup creates overlays only (they display everything: timer, session type, progress, goals, next-up info). If you prefer separate text elements for custom positioning, see [Manual Text Sources](overlay-customization.md#manual-text-sources-advanced).
10272
10373
---
10474

@@ -123,6 +93,7 @@ Optional but useful:
12393
| Add Time | `Ctrl+F9` | Add 5 minutes to current session |
12494
| Subtract Time | `Ctrl+F10` | Remove 5 minutes from current session |
12595
| Reset All | `Ctrl+F11` | Clear all progress and start fresh |
96+
| Resume Previous | `Ctrl+F12` | Restore a session interrupted by crash/close |
12697

12798
4. Click **Apply****OK**
12899

@@ -131,8 +102,8 @@ Optional but useful:
131102
## Step 5: Start Your First Session
132103

133104
1. Press your **Start/Pause** hotkey (e.g., `F9`)
134-
2. Watch: your `Timer` source should start counting down from `25:00`
135-
3. Your `Session` source should show `Focus Time`
105+
2. Watch: the **ring overlay** starts counting down from `25:00`
106+
3. The **bar overlay** at the top shows session type, timer, progress, and goal count
136107
4. When it hits `0:00`, it will automatically switch to a **Short Break** (5 minutes)
137108
5. After the break, it auto-starts the next Focus session
138109

@@ -145,21 +116,22 @@ Focus (25 min) → Short Break (5 min) → Focus → Short Break → Focus → S
145116
146117
---
147118

148-
## Step 6: Add the Overlay (Optional)
119+
## Step 6: Customize Your Overlays
149120

150-
The ring overlay adds a beautiful visual timer to your stream:
121+
Both overlays are highly customizable via the **Custom CSS** field in OBS Browser Source properties.
151122

152-
1. In your scene, click **+** (add source) → **Browser**
153-
2. Name it `Timer Overlay`
154-
3. Check **✅ Local file**
155-
4. Click **Browse** → navigate to your SessionPulse folder → select **`timer_overlay.html`**
156-
5. Set **Width: 220**, **Height: 220**
157-
6. Click **OK**
158-
7. Position the overlay where you want it on your stream
123+
### Ring Overlay
124+
- Created by Quick Setup as `SP Overlay` (400×400)
125+
- Scale it down in OBS to your preferred size (e.g., 150px for gaming, 280px for study streams)
126+
- Themes: Neon, Minimal, Glassmorphism, or default
159127

160-
You should see a circular ring with the countdown timer. It will be green during Focus, blue during Short Break, and purple during Long Break.
128+
### Bar Overlay
129+
- Created by Quick Setup as `SP Overlay Bar` (1920×48)
130+
- Sits at the top edge of your canvas
131+
- Shows: session icon, label, timer, progress bar, goal count, next-up info
132+
- Auto-hides when the timer is idle
161133

162-
> For customization (themes, colors, sizes), see the [Overlay Customization Guide](overlay-customization.md).
134+
> For full theme presets, CSS variables, and color customization, see the [Overlay Customization Guide](overlay-customization.md).
163135
164136
---
165137

@@ -179,7 +151,7 @@ The dock gives you clickable buttons inside OBS instead of using hotkeys:
179151

180152
3. Click **Apply**
181153

182-
A new dock panel appears with Start/Pause, Skip, Stop buttons, a timer display, session stats, and the live `SP Status` / AFK message when one is active.
154+
A new dock panel appears with Start/Pause, Skip, Stop buttons, a timer display, session stats, and the live status message when one is active.
183155

184156
**For control buttons to work**, you need WebSocket enabled:
185157
1. Go to **Tools****WebSocket Server Settings**
@@ -197,18 +169,18 @@ Your setup should now look like this:
197169
flowchart TB
198170
subgraph OBS["OBS Studio"]
199171
Script["session_pulse.lua\n(engine)"]
200-
Timer["Timer: 24:59"]
201-
Session["Session: Focus Time"]
202-
Overlay["Ring Overlay\n(Browser Source)"]
172+
Ring["SP Overlay\n(Ring — 400×400)"]
173+
Bar["SP Overlay Bar\n(Bar — 1920×48)"]
174+
BG["SP Background\nImage / Video"]
203175
Dock["Control Dock\n(Custom Browser Dock)"]
204176
end
205177
206-
Script -->|updates| Timer
207-
Script -->|updates| Session
208178
Script -->|writes| State["session_state.json"]
209-
State -->|reads| Overlay
179+
State -->|reads| Ring
180+
State -->|reads| Bar
210181
State -->|reads| Dock
211182
Dock -->|WebSocket| Script
183+
Script -->|updates| BG
212184
```
213185

214186
---
@@ -218,7 +190,8 @@ flowchart TB
218190
| Want to... | Read... |
219191
|-----------|---------|
220192
| Customize overlay colors and themes | [Overlay Customization](overlay-customization.md) |
221-
| Auto-switch scenes, duck music, control mic | [Automation Guide](automation-guide.md) |
193+
| Auto-duck music, control mic, toggle filters | [Automation Guide](automation-guide.md) |
222194
| Set up Nightbot or Stream Deck | [Integrations](integrations.md) |
223195
| Control from your phone | [Mobile Remote](mobile-remote.md) |
196+
| Use individual text sources instead of overlays | [Manual Text Sources](overlay-customization.md#manual-text-sources-advanced) |
224197
| Something isn't working | [FAQ & Troubleshooting](faq.md) |

session_pulse.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2807,7 +2807,7 @@ function populate_scene(scene, overlay_source, bar_source, background_sources, m
28072807

28082808
-- Add ring overlay at top-left
28092809
if overlay_source then
2810-
add_source_obj_to_scene(scene, overlay_source, 30, 30)
2810+
add_source_obj_to_scene(scene, overlay_source, 60, 60)
28112811
end
28122812

28132813
-- Add bar overlay at top edge (full width)

0 commit comments

Comments
 (0)