Entwerfen Sie Ihre eigenen Social Stream-Overlays

Laden Sie lokale Overlay-Designs in OBS herunter, passen Sie sie an, verbinden Sie sie und testen Sie sie, mit Anleitungen für jede Overlay-Familie.

Eigenes Overlay in 5 Schritten erstellen

Laden Sie die Dateien herunterÄndern Sie das DesignÖffnen in OBS
  1. Overlay auswählen das du ändern möchtest.
  2. Laden Sie die Quell-ZIP-Datei herunter, entpacke es und kopiere die HTML-Datei des Overlays.
  3. Kopie bearbeiten selbst oder bitte ein KI-Werkzeug darum.
  4. Kopie in OBS öffnen mit deinen SSN-Sitzungseinstellungen in der Adresse.
  5. Ausprobieren mit dem echten Auslöser des Overlays.
Nur neue Farben oder Schriften? Überspringe den Download. Behalte den normalen gehosteten Link und füge CSS in der OBS-Browserquelle in folgendes Feld ein: Eigenes CSS -Feld.

Zu änderndes Overlay auswählen

Du kannst Farben, Schriften, Layout, Grafiken und Animationen eines Overlays ändern. Die HTML-Datei ist die Seite. Die OBS-URL verweist darauf und fügt deine Sitzungs- und Anzeigeeinstellungen hinzu.

Wählen Sie ein funktionierendes Overlay, bevor Sie dessen Erscheinungsbild ändern.
Beginne mit einem bereits funktionierenden Overlay.

Jeder Overlay-Typ reagiert auf andere Daten. Chatseite, hervorgehobene Nachricht und Umfrage verwenden unterschiedliche Eingaben. Öffne die Designanleitung für deinen Typ:

Design-LeitfadenStartdateienWas es antreibt
Chatten und andockensampleoverlay.html, dock.html, themes/*Jede erfasste Chat-Nachricht
Hervorgehobene Nachrichtenfeatured.html, samplefeatured.html, themes/featured-styles/*Ausgewählte Nachrichten und Löschbefehle
Benachrichtigungen und Ereignis-Feedsmulti-alerts.html, events.html, themes/events/index.htmlMatching-Events/bezahlte Chat-Zeilen
Grafische Umfragenpoll.htmlEinstellungen für Abstimmungen und Host-Umfragen
Trinkgeldgläser und Zieletipjar.htmlKonfigurierte Support-/Anzahl-/Hype-Metrik
Zähler und Ranglistenhype.html, meta.html, leaderboard.html, scoreboard.htmlZählungen, Metadaten, Aktivitäten oder Punkt-Snapshots
Wartelisten und Warteschlangenauslosungenwaitlist.htmlHost-Warteschlange und Gewinnerstatus
Giveaway-Displaysgiveaway.html, giveaway-obs-entries.htmlVerwalteter Giveaway-Status oder Legacy-Eintrags-Feed
Timertimer.htmlTimer-Status und Steuerungen
Tickerticker.htmlKonfigurierter Tickerinhalt
Wortwolken und Kartenwordcloud.html, map.htmlPassende Wörter oder Ortseinträge
Reaktionen und Medieneffektereactions.html, emotes.html, content.html, gif.html, confetti.html, stickers.html, actions.htmlDer spezifische Medien-/Ereignis-/Aktionsauslöser der Seite
Abspanncredits.htmlGesammelte Teilnehmer und Credits-Kontrollen
Musik- und KI-Anzeigenspotify-overlay.html, cohost-overlay.html, bot.html, chatbot.htmlAktuelle oder Bot-/Cohost-Updates
Produkte und Boardsmonetization.html, commerce-board.html, shop_the_stream.htmlShared-Commerce-Status
Spiele und Belohnungengames/*, games/templates/*, games.html, battle.htmlSpielspezifischer Chat, Geschenke und Befehle
Generierte KI-Overlaysaioverlay.html, aievent-overlay.htmlGespeicherte Designs und ihre konfigurierte Ereignisroute

Möchtest du etwas Fertiges? Probiere die Overlay-Galerie oder Vorlagengalerie. Du möchtest einen Chat-Skin von StreamElements oder Streamlabs nutzen? Folge der Importanleitung. Dieser Export hat eigene Einrichtungsschritte.

Laden Sie die Dateien herunter

  1. Beta-Quellcode als ZIP herunterladen. Oder öffne den Beta-Repository und wähle Code → ZIP herunterladen.
  2. Entpacke es in einen dauerhaften Ordner, zum Beispiel C:\SSN\social_stream-beta\. Bearbeite nicht innerhalb der ZIP-Datei. SSN muss nicht neu installiert werden.
  3. Finde die Overlay-Datei (siehe Tabelle oben). Erstelle daneben eine Kopie, zum Beispiel poll.html → my-poll.html. Für ein Theme wie themes/featured-styles/featured-modern.html, lege die Kopie im selben Ordner ab.
  4. Öffne die Kopie in einem Text- oder Codeeditor. Speichere sie als .html, nicht .html.txt.
Behalte den gesamten entpackten Ordner. Eine HTML-Datei kann Skripte, Stile, Schriften, Bilder, Audio oder Daten aus benachbarten Ordnern laden. Verschieben der Seite zerstört diese Verweise. GitHubs Seitenansicht oder „Seite speichern“ im Browser lädt nicht alles herunter.
Ordneraufbau und Funktionsweise der Pfade
social_stream-beta/
    poll.html
    my-poll.html
    currency.js
    js/
    libs/
    shared/
    thirdparty/
    media/
    sources/images/
    themes/
        featured-styles/
            featured-modern.html
            my-featured.html
    docs/
        event-reference.html

Ein Pfad wie ../../shared/utils/chatHtml.js ist relativ zu der Seite, die ihn lädt. Verschiebst du die Seite ins Stammverzeichnis, funktioniert der Pfad nicht mehr. Kopiere auch deine Grafiken und Schriften in den Ordner und nutze relative Pfade. Deine bearbeitete Kopie erhält spätere SSN-Korrekturen nicht automatisch.

Sitzungslink beibehalten

Starte SSN, verbinde eine Quelle und prüfe, ob das ursprüngliche Overlay funktioniert. Kopiere dann den vollständiger Link aus dem SSN-Werkzeug für dieses Overlay.

https://socialstream.ninja/poll.html?session=YOUR_SESSION&password=YOUR_PASSWORD&server2

Der Wert nach session= ist deine SSN-Sitzung. Das ist nicht dein YouTube-Kanal, Twitch-Name, Dateiname oder Umfragetitel. SSN und deine Seite müssen dieselbe Sitzung und dasselbe Passwort verwenden. Lass SSN laufen: Overlays empfangen nur Daten. Sie erfassen selbst keinen Chat.

RegelWarum
? beginnt die Einstellungen, & verbindet den RestKopieren statt neu eingeben. Schreibe innerhalb eines HTML-Attributs &. Verwende im Browser oder OBS-URL-Feld ein einfaches &.
Servereinstellungen beibehaltenserver, server2, server3, lokale Endpunkte, Bezeichnungen und Versionswerte unterscheiden sich je nach Seite. Füge keine Serveroption hinzu, nur weil ein anderes Overlay sie verwendet.
Behalte alles nach #Das kann wichtig sein. AI Event Overlay verwendet zum Beispiel einen privaten #aieventauth=... -Token.
Beim Teilen Platzhalter verwendenHalte echte Sitzung, Passwort und private Tokens aus Screenshots, Repositorys und KI-Prompts heraus.

Wenn deine Kopie leer bleibt, prüfe zuerst den Originallink. Manche Seiten fragen nach fehlenden Einstellungen, andere bleiben verborgen oder leiten weiter. Die richtige Sitzung im Link erspart das Raten.

Datei in OBS öffnen

Öffne die bearbeitete Datei direkt vom Computer. Kein Server nötig.

  1. Ziehe deine HTML-Kopie in Chrome oder Edge. Kopiere die Adresse. Sie beginnt mit file:///.
  2. Kopiere aus deinem funktionierenden SSN-Overlay-Link alles ab ? weiter. Füge es am Ende der Dateiadresse ein. Dadurch bleiben Sitzung, Passwort, Einstellungen und vorhandene # -Teil.
  3. Öffne diese zusammengesetzte Adresse zum Testen im Browser.
  4. Erstelle in OBS eine Browserquelle. Lass Lokale Datei deaktiviert. Füge die vollständige Adresse ein in URL und stelle Breite und Höhe ein.

Beispiel: Dieser SSN-Link…

https://socialstream.ninja/poll.html?session=YOUR_SESSION&password=YOUR_PASSWORD&server2

…wird bei einer heruntergeladenen Umfragekopie unter Windows zu:

file:///C:/SSN/social_stream-beta/my-poll.html?session=YOUR_SESSION&password=YOUR_PASSWORD&server2

Unter macOS beginnt es mit file:///Users/..., unter Linux meist file:///home/.... Das Kopieren aus dem Browser behandelt Leerzeichen und Schrägstriche für dich.

Gut zu wissenEinzelheiten
Das richtest du nur einmal einOBS speichert die Adresse. Lass den Ordner an seinem Ort und halte SSN sowie deine Chatquelle geöffnet.
Änderung gespeichert?Klicke auf Cache der aktuellen Seite aktualisieren in den Quelleigenschaften.
Warum sollte die Option „Lokale Datei“ deaktiviert bleiben?Im URL-Feld kannst du hinzufügen ?session=.... Die Dateiauswahl über „Lokale Datei“ fügt diese Einstellungen nicht hinzu.
Optional: Verwenden Sie das Kontrollkästchen „Lokale Datei“ mit einem Launcher

Die OBS-Dateiauswahl wählt eine Datei, kann aber deine Einstellungen nicht ergänzen. Eine kleine Startseite kann deine bearbeitete Seite mit angehängten Einstellungen öffnen:

  1. Speichere den folgenden Code als launch-my-poll.html neben my-poll.html.
  2. Ersetze den Platzhalterlink durch deinen vollständig kopierten SSN-Link. Ändere ./my-poll.html in deinen Dateinamen. Lass den Link in Anführungszeichen, mit einfachem & Zeichen enthält.
  3. Teste die Startseite per Doppelklick. Aktiviere in OBS Lokale Datei und wähle die Launcher Mit. Es leitet mit den Einstellungen und dem Token weiter an dein Overlay: # -Teil.
<!DOCTYPE html>
<html lang="en">
<meta charset="utf-8">
<title>My local overlay launcher</title>
<p>Opening the local overlay...</p>
<script>
var copiedLink = new URL("https://socialstream.ninja/poll.html?session=YOUR_SESSION");
var localPage = new URL("./my-poll.html", window.location.href);
localPage.search = copiedLink.search;
localPage.hash = copiedLink.hash;
window.location.replace(localPage.href);
</script>
</html>

Lege bei einem Theme in einem Unterordner die Startseite neben die Theme-Kopie. Halte sie geheim, da sie deinen Verbindungslink enthält. Ein eigenständiger Export mit bereits enthaltenen Einstellungen hat stattdessen eigene Anweisungen.

OBS erklärt Datei-/URL-Modi, Größen, eigenes CSS und Aktualisierung in seiner Browser-Quellenreferenz.

Design ändern oder KI darum bitten

Ich möchte …So geht's
Nur CSS ändernBehalte den gehosteten Link und verwende in OBS Eigenes CSS -Feld. Es betrifft nur diese OBS-Quelle, nicht einen normalen Browser.
Meine bearbeitete HTML-Kopie umgestaltenFüge deine Stile nach den vorhandenen hinzu oder verlinke danach eine lokale CSS-Datei.
Verwende &css= oder &b64css=Nur manche Seiten unterstützen das. poll.htmlliest zum Beispiel keines von beiden. Prüfe zuerst den Code der Seite.
HTML-Layout ändernBehalte IDs und Klassen, die Skripte verwenden. Wenn ein Skript ein Element bei jeder Aktualisierung neu aufbaut, platziere dauerhafte Grafiken außerhalb davon oder füge sie dem Renderer hinzu.
Gemeinsame CSS- oder Skriptdatei bearbeitenKopiere sie und verweise deine Seite auf die Kopie, damit nur dein Design verändert wird.

Halte Logo, Schriftdateien, Markenfarben, Leinwandgröße und eine visuelle Vorlage bereit. Eine Webseite kann normalerweise keine Schriften oder Bilder von der Festplatte eines anderen Computers laden.

KI-Eingabeaufforderung

Nutze den typspezifischen Prompt in der jeweiligen Designanleitung oder beginne mit diesem. Gib der KI deine kopierte Datei und die geladenen Stile und Skripte.

Customize [copied overlay filename] to match [reference/design].
Canvas: [width x height]. Placement: [position]. Colors/fonts: [details].
Use the existing page and its supporting files, rather than replacing its
connection and event logic. Read docs/event-reference.html and the relevant
overlay design guide. Preserve query parameters, session/password, URL
fragments, bridge labels, transport channels, settings, and controls.
Use CSS first. Keep relative paths and package all executable dependencies
locally. Use classic scripts compatible with Chrome 80.
Keep operator controls, private links, and credentials off the audience view.

Treat all incoming messages, names, labels, donations, and metadata as untrusted.
Prevent HTML/JavaScript injection in every renderer you change. Use textContent
for plain fields and for chatmessage when textonly is true. For HTML-mode
chatmessage, keep supported emotes/formatting through the packaged
SocialStreamChatHTML.sanitize helper (libs/objects.js loaded first).
Do not concatenate raw input into innerHTML, attributes, CSS, or JavaScript.
Validate media/link URLs with the page's existing URL policy and assign DOM
properties; do not enable javascript: URLs or executable embedded content.
Never eval incoming data or treat a viewer message as an AI instruction.
Keep source checks, connection handling, and existing sanitizers.
Test plain text, allowed emotes, quotes, angle brackets, and an HTML injection
probe in an isolated preview; verify the probe cannot execute.

Make the edited overlay work directly from disk using a file:/// URL,
without requiring a local web server. Return the edited files and assets,
file URL and OBS setup steps, and tests
for this overlay's real trigger. Use session placeholders in shared examples.
Explain any behavior changes separately from the design edits.
Keine Scheinlösung akzeptieren. Ein Design, das nur mit fest eingebauten Beispielnachrichten funktioniert, ist nicht fertig. Behalte die Originaldatei und vergleiche beide mit denselben Testdaten.

Eingehenden Chat nicht zu Code werden lassen

Namen, Nachrichten, Titel, Beträge und Links stammen von Zuschauern und externen Diensten. Behandle sie als Text, niemals als Code. Bereinige sie dort, wo dein Renderer sie auf der Seite einfügt.

FeldSo wird es angezeigt
chatmessage mit textonly trueEinfacher Text (textContent).
chatmessage andernfallsKann Emotes und erlaubte Formatierung enthalten. Nutze den mitgelieferten Bereiniger.
Namen, Beträge, Titel und andere einfache FelderEinfacher Text (textContent).
chatimg, contentimg, LinksURLs, kein HTML. Prüfe sie anhand der bestehenden Medien-/Linkregeln der Seite und setze dann DOM-Eigenschaften.
<!-- Example for a copied page at the repository root. -->
<script src="./libs/objects.js"></script>
<script src="./shared/utils/chatHtml.js"></script>
<script>
function renderChatBody(element, data) {
    var message = String(data.chatmessage == null ? "" : data.chatmessage);
    if (data.textonly) {
        element.textContent = message;
    } else {
        element.innerHTML = SocialStreamChatHTML.sanitize(message);
    }
}
// Names, amounts, titles, and other plain fields use textContent:
// nameElement.textContent = String(data.chatname || "");
</script>
  • Wenn die Seite bereits einen Bereiniger hat, behalte ihn. Füge keinen zweiten hinzu.
  • Passe bei Dateien in Unterordnern die Skriptpfade an.
  • Füge keine rohen Namen in Attributzeichenfolgen oder rohe Farben in Stil-Markup ein. Prüfe Stilwerte, bevor du Eigenschaften einzeln setzt.
  • Auch bereinigtes HTML darf nicht als JavaScript ausgeführt oder als KI-Anweisung verwendet werden.

Weitere Hintergründe: OWASP-Anleitung zu sicheren Ausgabepunkten und HTML-Bereinigung.

Renderer sicher testen

Führe diese Tests in einer privaten lokalen Vorschau aus, nicht im öffentlichen Chat.

  • Verwende einen Namen wie Guest <b>One</b>. Die Klammern sollten als Text erscheinen.
  • Senden chatmessage: "<b>Hello</b>" mit textonly: true, dann false. Einmal sollten die Tags als Text erscheinen, einmal fetter Text.
  • Prüfe, ob ein unterstütztes Emote und eine reine Bildnachricht weiterhin funktionieren.
  • Lass die KI einen harmlosen Test durchführen, zum Beispiel <img src=x onerror="window.__ssnInjectionProbe=1">. Es darf nicht ausgeführt werden, den Marker setzen oder Ereignisattribute hinterlassen. Teste auch einen Link mit einem Skript-URL-Schema.

Ein erfolgreicher Test deckt nur die geprüften Pfade ab. Konzentriere dich auf die Renderer und Felder, die dein Design verändert hat.

Schrittweise testen

TestenSo geht's
LayoutNutze den Vorschau-/Demomodus der Seite, falls vorhanden, oder erfundene lokale Beispiele. Teste lange Namen und Nachrichten, fehlende Avatare, leere Daten und die erwartete Zeilenanzahl.
SSN-ÜbertragungLass SSN aktiv und nutze Testnachricht erstellen mit derselben Sitzung. Der übliche Erweiterungs-API-Modus benötigt Fernsteuerung der Erweiterung über API (remote API control of extension) aktiviert. Nutze eine Testumgebung: Testnachrichten können deine Automatisierungen auslösen.
Der echte AuslöserHebe eine Dock-Nachricht für eine hervorgehobene Karte hervor, stimme in einer Umfrage ab, ziehe einen Gewinnspielgewinner, ändere den Lauftext oder starte einen Timer. Normaler Chat testet nicht alles.
Echte ErfassungPrüfe, ob eine echte Nachricht oder ein echtes Ereignis sowohl das Original als auch die Kopie erreicht. Ein künstliches Ereignis bestätigt nur die Anzeige.
OBSPrüfe endgültige Größe, Transparenz, Animationen, Ton, Schriften und Ebenen. Teste Ein-/Ausblenden, Löschen/Zurücksetzen und Aktualisieren. OBS und dein Browser teilen weder Anmeldungen noch gespeicherte Daten.
Aktualisieren kann Daten löschen. Manche Seiten halten Daten im Arbeitsspeicher. Lies die Anleitung des Typs, bevor du automatisches Aktualisieren oder Abschalten bei Unsichtbarkeit aktivierst. Entferne demo oder preview aus dem Link, bevor du Live-Daten erwartest.

Dateien, die du deiner KI geben solltest

Gib der KI die eigene Overlay-Datei, die geladenen CSS-/JS-Dateien und diese Dateien. Die Ereignisreferenz allein erklärt weder die Umfragesteuerung noch den Layoutcode jedes Overlays.

DateiWofür es gedacht ist
docs/event-reference.htmlOffizielle Felder, benannte Ereignisse, Metadaten, Medien und Spendenwerte.
docs/customoverlays.mdEigene Empfänger und Verbindungsbeispiele.
Kompatibilität von Ereignissen und MeldungenWelche Ereignisse und Felder jede Quelle sendet.
Anleitung für Testnachrichten und createtestmessage.htmlBeispieldaten und Übertragungsmodi.
libs/objects.js und shared/utils/chatHtml.jsDer mitgelieferte Bereiniger für die Anzeige.
shared/utils/chatBadges.js und shared/utils/contentImage.jsVorhandene Verarbeitung von Abzeichen und Bildern.
js/transport-dedupe.js, js/local-server-url.js, shared/overlay-control-transport.jsVorhandene Verbindungsunterstützung, sofern deine Seite diese Dateien lädt.
currency.jsLasse hasDonation für die Anzeige und nutze einen gültigen numerischen USD-Wert für donoValue, einschließlich Null.
Event Flow und Befehle und APIVerwende vorhandene Steuerelemente, wenn das Design einen Auslöser benötigt.

Probleme beheben

ProblemVersuche Folgendes
Datei nicht gefundenZiehe die HTML-Datei erneut in deinen Browser und kopiere die Adresse. Prüfe, ob der Name auf .html endet, nicht auf .html.txt.
Skript, Schriftart oder Bild fehlenLass den entpackten Ordner unverändert, mit deiner Kopie neben dem Original. Prüfe, ob hinzugefügte Grafiken und Schriften an den von der Seite erwarteten Stellen liegen.
Leere Anzeige oder „Warten“Prüfe Sitzung, Passwort, die vollständigen ? und # -Teile, ob SSN läuft, die Funktion aktiviert ist und die richtigen Eingaben ankommen. Vergleiche mit dem ursprünglichen SSN-Link.
Sieht in OBS anders aus als im BrowserPrüfe Breite/Höhe, altes eigenes CSS, Schriften, Cache und Browserspeicher. Nach dem Speichern aktualisieren.
Logo verschwindet bei AktualisierungDas Skript baut möglicherweise seinen Container neu auf. Platziere dauerhafte Dekoration außerhalb oder ändere die Darstellungsvorlage.
Daten werden zurückgesetzt oder Aktionen doppelt ausgeführtPrüfe Einstellungen zum Aktualisieren und Entladen, doppelte Overlay- oder Steuerungskopien sowie die eigene Duplikat- und Zustandsverwaltung der Seite.
Sonderfall: Seiten, die separate Datendateien lesen

Die Karte lädt lokale JSON-Dateien mit fetch(), was Browser beim Öffnen von der Festplatte blockieren können. Nutze für eine einfache Kartenumgestaltung den gehosteten Link mit eigenem CSS in OBS. Bitte bei einer bearbeiteten Kopie die KI, die Kartendaten in die Seite einzubetten, damit sie lokal geöffnet werden kann. Hosting ist eine fortgeschrittene Option für Seiten, die es wirklich benötigen, kein normaler Einrichtungsschritt.

Behebe zuerst das kleinste bestätigte Problem. Eine Umgestaltung sollte keine Änderungen an Erfassungsskripten oder neue Ereignisfelder benötigen. Wenn du einen öffentlichen Fork teilst, füge seine Assets hinzu und lasse private Startseiten weg.