# FabSwingers Chat Enhancements

A Tampermonkey userscript that adds useful features to the FabSwingers chat.

## Features

- **MaxDockedCams** - Override the limit on how many webcam feeds you can dock
- **Keep Alive** - Automatically sends a message to prevent being timed out for inactivity (default: 10 minutes)
- **Multi-Poke** - Adds a "10x" button next to each user's poke button to send 10 pokes rapidly
- **Draggable Buttons** - All control buttons can be dragged anywhere on screen and positions are saved

## Installation

### Step 1: Install Tampermonkey

#### Firefox
1. Go to <a href="https://addons.mozilla.org/en-US/firefox/addon/tampermonkey/" target="_blank">Tampermonkey for Firefox</a>
2. Click "Add to Firefox"
3. Click "Add" when prompted for permissions

#### Chrome
1. Go to <a href="https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo" target="_blank">Tampermonkey for Chrome</a>
2. Click "Add to Chrome"
3. Click "Add extension" when prompted
4. **Important:** Enable userscripts using one of these methods:

   **Option A: Allow User Scripts (Chrome 138+)**
   1. Right-click the Tampermonkey icon in your toolbar
   2. Select "Manage extension"
   3. Toggle on "Allow User Scripts"

   **Option B: Enable Developer Mode**
   1. Go to `chrome://extensions` in your address bar
   2. Toggle on "Developer mode" in the top-right corner

   *Note: Tampermonkey 5.3+ requires one of these options enabled to run userscripts in Chrome-based browsers.*

### Step 2: Install the Script

**Method A: Direct Install (if Tampermonkey prompts automatically)**

Click this link: **<a href="https://git.upto.im/geekery/scripts/raw/branch/main/cams.user.js" target="_blank">Install Script</a>**

If Tampermonkey opens automatically, click "Install" and you're done.

**Method B: Manual Install (if the link just shows code)**

1. Go to the script URL: https://git.upto.im/geekery/scripts/raw/branch/main/cams.user.js
2. Select all the code (Ctrl+A / Cmd+A) and copy it (Ctrl+C / Cmd+C)
3. Click the Tampermonkey icon in your browser toolbar
4. Select "Create a new script..."
5. Delete any existing code in the editor
6. Paste the copied code (Ctrl+V / Cmd+V)
7. Press Ctrl+S / Cmd+S to save, or click File → Save

The script will automatically update when new versions are released.

## Usage

Once installed, visit the FabSwingers chat. You'll see three buttons in the top-right corner:

| Button | Function |
|--------|----------|
| **10x ON/OFF** | Toggle multi-poke buttons on user list |
| **Keep Alive ON** | Shows status and interval; click to configure |
| **Set MaxDockedCams** | Click to set custom docked cam limit |

### Moving Buttons

All buttons are draggable. Click and drag to reposition them anywhere on screen. Positions are saved automatically.

### Resetting Button Positions

If buttons end up off-screen (e.g., after switching between monitors), click the small "R" button in the top-left corner to reset all buttons to their default positions.

### Keep Alive Settings

Click the Keep Alive button to open settings:
- Adjust interval (1-30 minutes)
- Start/Stop the timer
- Disabled by default on page load

### Multi-Poke

When enabled, an orange "10x" button appears next to each user's poke button. Clicking it sends 10 pokes in rapid succession with a countdown display.

## Troubleshooting

**Buttons not appearing?**
- Make sure Tampermonkey is enabled
- Refresh the page
- Check that the script is enabled in Tampermonkey dashboard

**Keep Alive not working?**
- Make sure you have a public chat room open (General Chat, Directing Room, etc.)
- Check browser console for error messages

**Buttons disappeared off-screen?**
- Click the small "R" button in the top-left corner to reset positions
- This can happen when switching between different sized monitors

**Positions reset unexpectedly?**
- Positions are stored in localStorage. Clearing browser data will reset them.

## Updating

The script checks for updates automatically. You can also manually update:
1. Click the Tampermonkey icon
2. Go to Dashboard
3. Click the script name
4. Click "Check for updates"
