W2G Full Theater + Panels + Helpers (v15)

Full-theater player on w2g + edge hover panels + script settings (auto-join, auto-refresh, native controls, auto-unmute, auto-start, Twitch helpers)

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

نووسەر
Kalila Violette
Daily installs
1
Total installs
7
Ratings
0 0 0
وەشان
1.5
Created
2025-12-07
Updated
2025-12-07
Size
41.6 KB
مۆڵەت
نییە
Applies to

Overview

This userscript turns Watch2Gether into a proper full-theater experience and adds quality-of-life helpers for both YouTube and Twitch players embedded in W2G rooms.

It focuses on:

  • Making the video the star of the page (full-screen style layout)
  • Keeping W2G UI elements still accessible via hover panels
  • Reducing the number of clicks needed to actually start watching and listening
  • Giving you a simple in-room settings panel so you stay in control

The script runs on:

It is designed for use with Watch2Gether rooms, but some Twitch and YouTube helpers will work on those embeds in general.


Main Features

1. Full Theater Layout for Watch2Gether

On w2g.tv, the script:

  • Forces the player container to fill almost the entire viewport height and width.
  • Uses a plain black background and removes extra padding so the video is as large as possible.
  • Keeps W2G apps, chat, and userlist usable by attaching them to hover zones at the screen edges.

Result: you get a near full-screen viewing experience while still having access to W2G panels when you move your mouse to the screen edges.


2. Hover Edge Panels and Linked Userlist

To keep things clean but accessible:

  • Left panel + userlist

    • The left sidebar and the bottom userlist are linked together.
    • Hover near the left edge to slide them into view. Move away to slide them back out.
  • Top apps panel

    • W2G apps that normally sit above the player are moved into a top overlay.
    • Hover near the top edge to reveal them.
  • Right panel

    • The right sidebar is fixed and can be toggled by hovering near the right edge.

All of these are done with CSS transforms and transitions, so they feel smooth and are easy to reveal only when you need them.


3. Script Settings UI (Alt+S and Sidebar Button)

The script adds a small “Script” icon in the left sidebar on w2g.tv. Clicking it opens a simple settings panel. You can also open it with:

  • Keyboard shortcut: Alt + S (no Ctrl, Shift, or Meta required)

From this panel you can toggle:

  • Auto click “Join the Room”
  • Auto refresh on disconnect modal (disabled by default)
  • Auto unmute video (W2G player)
  • Auto start playback (YouTube embed in W2G)
  • Auto start Twitch (overlay play button)
  • Auto unmute Twitch (clicks “Click to unmute” overlay or the mute button when it says Unmute)
  • Enable native player controls after a user gesture

All settings are stored via GM_setValue (with a localStorage fallback), so your choices persist across sessions and page reloads.


4. Auto Join “Join the Room”

On w2g.tv, the script can automatically:

  • Detect the “Join the Room” intro modal.
  • Click the “Join the Room” button when it is visible.

This behavior is controlled by the “Auto click ‘Join the Room’” setting.


5. Optional Auto Refresh on Disconnect Modal

On w2g.tv, the script can watch for the standard disconnect error modal:

Error - you have been disconnected

If enabled, it will automatically reload the page when that modal appears.

  • This feature is off by default so the user has to explicitly enable it.
  • When turned on, a small interval watcher checks for the modal every few seconds.
  • You can disable it any time via the settings panel if you prefer to refresh manually.

6. Native Player Controls (W2G Player)

On w2g.tv, W2G has an internal “native controls” option for the player.

The script:

  • Hooks into navigation (history.pushState and history.replaceState) to re-arm native-control enabling as you change videos/routes.
  • After a user gesture (click or key press), it looks for the menu item that toggles native controls and enables it.
  • Waits for the native <video> element to show up and attempts to play it.

This gives you more direct browser-native controls over the underlying video while staying in the W2G environment.


7. Auto Unmute in the W2G Player Frame

On player.w2g.tv, the script can:

  • Scan for the classic W2G .player_button.unmute button.
  • Check that it is visible.
  • Click it to unmute the player.

It tries for a limited number of attempts with a short delay between checks, then stops to avoid running forever. Controlled by the “Automatically Unmute video” setting.


8. YouTube Auto Start (Embed)

On player.w2g.tv and youtube.com/embed iframes, the script:

  • Looks for YouTube embed iframes (youtube.com/embed or youtube-nocookie.com/embed).
  • Sends a postMessage command to call playVideo on the YouTube player API.
  • Retries for a short period, then stops if it cannot find a playable iframe.

This helps get YouTube videos playing with fewer clicks. Controlled by the “Auto start playback (YouTube player in W2G)” setting.


9. Twitch Auto Start (Overlay Play Button)

On player.twitch.tv, the script:

  • Scans for the large central overlay play button (selector: button[data-a-target="player-overlay-play-button"]).
  • Confirms that the button is visible.
  • Clicks it to start the stream or VOD automatically.

It stops after a reasonable number of attempts, so it will not poll endlessly. Controlled by the “Auto start Twitch (overlay play button)” setting.


10. Twitch Auto Unmute

Also on player.twitch.tv, the script has two layers of auto-unmute:

  1. “Click to unmute” overlay
  • Looks for the click-to-unmute__container overlay.
  • If visible, clicks it.
  1. Mute / Unmute button in the player controls (v2)
  • Looks for the standard mute/unmute button when the stream is muted:

    • button[data-a-target="player-mute-unmute-button"][aria-label^="Unmute"]
  • If visible, clicks it to unmute.

It makes limited attempts and then stops. Controlled by the “Auto unmute Twitch” setting.


Usage Instructions

  1. Install the script via Tampermonkey (or another compatible userscript manager).
  2. Join a Watch2Gether room at https://w2g.tv/.
  3. Once the room loads:
  • Verify that the player is full-width and full-height under the top bar.
  • Hover edges to reveal panels and userlist.

    1. Open the script settings:
  • Click the “Script” icon in the left sidebar, or

  • Press Alt + S.

    1. Toggle any features you want:
  • Turn on or off auto-join, auto-refresh, native controls, auto-unmute, auto-start, Twitch helpers, etc.

    1. Save the settings. They will persist across sessions until you change them again.

Notes and Limitations

  • Watch2Gether, YouTube, and Twitch can all change their HTML structure and CSS class names at any time. If a selector changes, some helpers (like auto-unmute or auto-start) may stop working until the script is updated.
  • Auto-start and auto-unmute are still subject to browser autoplay policies. Some browsers require at least one user gesture on the page before playback with sound is allowed.
  • The script tries not to spam the DOM with infinite loops. All scanning runs with limited attempts and interval delays, then stop gracefully.