Skip to content
Marc Staebler edited this page Mar 26, 2026 · 7 revisions

FAQ – Häufig gestellte Fragen


Wo bekomme ich Hilfe?


Welche JavaScript-Version läuft auf dem Server?

Der Server nutzt die Rhino Engine 1.9.1, die im ES6-Sprachmodus läuft und viele gängige ES6-Funktionen unterstützt – allerdings nicht den vollständigen Standard. Informationen zur Kompatibilität mit aktuellen JavaScript-Funktionen findest du hier: https://mozilla.github.io/rhino/compat/engines.html.

Im Frontend (www/-Ordner) kannst du modernes JavaScript verwenden, da es im Browser des Clients läuft.


Meine App startet nicht unter iOS. Was tun?

Du brauchst eine gültige Apple-Entwicklerlizenz. Trage die appleDeveloperId in der app.config ein:

appleDeveloperId = DEINE_APPLE_ID

Ich habe Dateien hochgeladen, aber die Änderungen werden nicht angezeigt.

  • Wenn du auf den Live-Server hochlädst, kann es einige Minuten dauern, bis die Dateien synchronisiert sind
  • Warte etwas und klicke dann erneut auf "update/restart" in /apps
  • Nutze Client.includeJS() und Client.includeCSS() statt direkter HTML-Einbindung, um Cache-Probleme zu vermeiden

Events vom Client kommen nicht mehr beim Server an.

Mögliche Ursachen:

  • Du hast window.location oder einen Direktlink zu einer anderen HTML-Datei verwendet – dadurch geht der Client-Bezug verloren
  • Lösung: Nutze replaceWithAppContent() für Seitenwechsel oder ein Single-Page-Konzept

Kann ich console.log auf dem Server verwenden?

Nein. Nutze stattdessen den Logger:

var logger = KnuddelsServer.getDefaultLogger();
logger.info('Meine Debug-Nachricht');

Wie kann ich meine App auch anderen Nutzern zur Verfügung stellen?

Trage in der app.config ein, wer die App installieren darf:

# Bestimmter Nutzer
mayBeInstalledBy.3 = AndererNick.knuddelsDE

# Jeder auf dem Server
mayBeInstalledBy.3 = *.knuddelsDE

Was ist der Unterschied zwischen Dev-Server und Live-Server?

  • Dev-Server (knuddelsDEV): Zum Entwickeln und Testen. Keine Auswirkungen auf echte Nutzer.
  • Live-Server (knuddelsDE): Die produktive Umgebung. Hier sollten nur stabile Apps installiert werden.

Mehr dazu unter Dev-Server.


Wie mache ich meine App im "Apps & Spiele"-Menü sichtbar?

Registriere sie als Globale App. Siehe Globale Apps.


Wie kann ich Quests einbauen?

Siehe die ausführliche Dokumentation unter Quests.


Wie groß kann mein Persistence-Speicher werden?

Die maximale Größe pro Schlüssel beträgt 102.400 Zeichen. Die Gesamtgröße der Datenbank ist ebenfalls limitiert. Du kannst sie prüfen mit:

var persistence = KnuddelsServer.getPersistence();
var groesse = persistence.getDatabaseFileSize();
var limit = persistence.getDatabaseFileSizeLimit();

Kann meine App mit externen APIs kommunizieren?

Ja, über ExternalServerAccess. Allerdings nur mit freigegebenen Domains. Siehe Externe Server-Kommunikation.


Sonderzeichen (ä, ö, ü) werden in KCode falsch angezeigt.

Deine JavaScript-Dateien müssen als UTF-8 ohne BOM gespeichert werden. Stelle das in deinem Editor ein (z.B. VS Code: "Files: Encoding" → "utf8"). Dateien mit BOM oder in anderen Encodings (z.B. ANSI) führen zu kaputten Sonderzeichen.


Warum sollte ich Client.includeJS() statt <script> verwenden?

Wenn du JavaScript-Dateien im Frontend mit einem normalen <script>-Tag einbindest, werden sie vom Browser gecacht. Das heißt, nach einem Update auf dem Server sehen Nutzer möglicherweise noch die alte Version. Client.includeJS() und Client.includeCSS() umgehen dieses Caching-Problem, indem sie automatisch einen Cache-Buster anhängen.

<!-- Statt: -->
<script src="js/app.js"></script>

<!-- Verwende im <head>: -->
<script>
    Client.includeJS('js/app.js');
    Client.includeCSS('css/style.css');
</script>

Was passiert mit Nutzerdaten, wenn ein Account gelöscht wird?

Implementiere den onUserDeleted-Hook, um Nutzerdaten DSGVO-konform zu löschen. Ohne diesen Hook werden Persistence-Daten erst beim nächsten App-Start aufgeräumt. Siehe App-Lifecycle → Nutzerlöschung.


Wie kann ich einen App-Manager hinzufügen?

Channel-Owner können per Chat-Befehl App-Manager verwalten:

/apps addManager knuddelsDE.ENTWICKLER_ID.AppName ManagerNick
/apps removeManager knuddelsDE.ENTWICKLER_ID.AppName ManagerNick

← Zurück zur Übersicht

Navigation

Einstieg

Kernkonzepte

Features

Tutorials

Referenz & Hilfe

Clone this wiki locally