| User ID | Erstellt am | Premium-Status | Rolle | Aktionen | |
|---|---|---|---|---|---|
| Lade Benutzer... | |||||
| ID / User ID | Betreff | Letzte Nachricht | Status | Erstellt am | Aktion |
|---|---|---|---|---|---|
| Lade Tickets... | |||||
Diese Werte bestimmen die globalen Limits für alle Benutzer. Änderungen werden sofort wirksam.
read_only_key (das auth_key aus dem Sign-Log) eingeben — zeigt, zu welchem Account er gehört und ob dieser live gehen darf (Premium/Staff). So sieht man sofort, warum ein „Verbinden" 403 wirft.
Spiele + Events kommen aus diesem Katalog – TikEasy lädt ihn beim Start.
Neue Spiele: HTML-Ordner unter stream_games_display/ auf den Server legen,
hier anlegen → kein Client-Update nötig. „Speichern" schreibt den GESAMTEN Katalog.
| Cover | Key | Titel | Sichtbarkeit | Release | Events | Aktionen |
|---|---|---|---|---|---|---|
| Lade Spiele… | ||||||
Lädt die Spieldateien hoch und setzt die „Spiel-URL" oben automatisch auf die erkannte HTML. So musst du die URL nicht selbst kennen. (Alternativ die URL oben von Hand eintragen.)
Der Key muss zur runAction() im Spiel-HTML passen. Zeilen mit „tr-Key" nutzen die eingebauten TikEasy-Übersetzungen – eigene Labels (DE/EN) überschreiben das.
| Key | Icon | Label DE | Label EN | 👤 | Win | Farbe | 🎁 Standard |
|---|
„Übernehmen" ändert nur die Liste – erst „Katalog speichern" schreibt auf den Server.
1080×1920 hochkant, three.js vom CDN ist ok). Sounds in einen sounds/-Unterordner daneben.runAction() + Win-Melder.stream_games_display/<SpielName>/ auf den Server._.count beachten: 5× dasselbe Gift = eine Nachricht mit count: 5 → Aktion entsprechend oft (mit Deckel!) ausführen.data.name/data.pfp_url sind dabei, wenn der Server sie kennt – nutzen, wenn das Spiel Namen anzeigen soll (wie Smash-Burger-Vordrängler).reportWin(+1/-1) aufrufen (Konsolen-Markierung, siehe Vorlage) – TikEasy fängt das ab./* ==== StreamUp-Anbindung (Gift → Spiel-Aktion) ==== */
const GAME_KEY = 'meinspiel'; // = Key aus dem Spiele-Katalog (Kleinbuchstaben!)
// Event-Key → Funktion. Die Keys MÜSSEN exakt den Katalog-Events entsprechen.
const GIFT_ACTIONS = {
boost: (name, pfp) => { /* ... Spiel-Logik ... */ },
bomb: (name, pfp) => { /* ... Spiel-Logik ... */ },
win_add: () => reportWin(+1),
win_remove: () => reportWin(-1),
};
function runAction(action, count, name, pfp) {
const fn = GIFT_ACTIONS[action];
if (!fn) return;
const n = Math.max(1, Math.min(20, count | 0 || 1)); // Spam-Deckel
for (let i = 0; i < n; i++) fn(name, pfp);
}
// Win-Tracker: ±1 an TikEasy melden (das Spielfenster liest die Konsole).
// full=true NUR für selbst erspielte Siege (füllt bis zum Ziel, ohne Bonus).
function reportWin(delta, full) {
try { console.log((full ? '__APSWINFULL__:' : '__APSWIN__:') + (delta > 0 ? 1 : -1)); } catch (e) {}
}
// WebSocket: empfängt { type: GAME_KEY+'_action', data: { action, count, name, pfp_url } }
(function setupGiftSocket() {
const readKey = new URLSearchParams(location.search).get('key');
if (!readKey) return; // ohne ?key= (lokaler Test) kein Server
const scheme = location.protocol === 'https:' ? 'wss' : 'ws';
const url = scheme + '://' + location.host + '/ws/updates/' + readKey;
let delay = 1000;
function connect() {
let ws; try { ws = new WebSocket(url); } catch (e) { retry(); return; }
ws.onopen = () => { delay = 1000; };
ws.onmessage = (ev) => {
let m; try { m = JSON.parse(ev.data); } catch (e) { return; }
if (m && m.data && m.type === GAME_KEY + '_action')
runAction(m.data.action, m.data.count, m.data.name, m.data.pfp_url);
};
ws.onclose = () => retry();
ws.onerror = () => { try { ws.close(); } catch (e) {} };
}
function retry() { setTimeout(() => { delay = Math.min(delay * 1.6, 15000); connect(); }, delay); }
connect();
})();
Ans Ende des <script>-Blocks im Spiel-HTML einfügen und die
TODO-Funktionen mit der Spiel-Logik füllen. Die Event-Keys sind exakt
die aus diesem Editor – nicht umbenennen!
ZIP mit dem kompletten Spiel-Inhalt (HTML + sounds/ …). Ein einzelner Top-Ordner im ZIP wird automatisch entfernt. Der aktuelle Stand wird vorher automatisch als Version gesichert.
| Version vom | Größe | Aktionen |
|---|---|---|
| – | ||
Aus dem Katalog gelöschte Spiele landen hier (die letzten 25) und können mit einem Klick wiederhergestellt werden – inklusive aller Events und Einstellungen. Die Spiel-Dateien auf dem Server werden beim Löschen ohnehin nie angefasst.
| Titel | Key | Gelöscht am | Aktion |
|---|---|---|---|
| – | |||
Lade...
Möchtest du den Benutzer wirklich unwiderruflich löschen?