2 Accounts auf einem Rechner mit unterschiedlichen WTF-Ordner?

Moin Moin,

meine Frau und ich spielen zusammen. Wir haben dafür einen Laptop und ein PC. Am PC spielen wir teilweise beide zu unterschiedlichen Zeiten. Jeder hat ein eigenes Windows-Profil und natürlich einen eigene WOW-Account.

Nun spielen wir mit unterschiedlichen Einstellungen sowie unterschiedlichen Add-Ons.

Es fällt auf, dass einige Addons von mir die Spieleinstellungen so sehr verändert, dass meine Frau beeinträchtigt ist, selbst wenn Sie die Add-Ons deaktiviert. Bestes Beispiel ist z.B. ELVui.
Es hilft dann nur den WTF-Ordner zu löschen und alles neu einzustellen.

Als Workaround müsste nun jeder seinen eigenen WTF-Ordner irgendwo zwischenspeichern und diesen vor dem spielen immer rein kopieren.

Ich schätze, man kann sicherlich je Windows-User ein vom Standard abweichenden WTF-Ordner angeben, oder?
Könnte man WoW nicht sagen, dass der WTF-Ordner also z.B. nicht im Root-Verzeichnis von WOW, sondern im Userverzeichnis unter Dokumente ist?
Also hier C:\Users\Windows-User\Dokumente statt hier C:\Program Files (x86)\World of Warcraft_retail_

Habt ihr einen Tipp?

Nein das geht nicht, da der Client keine unterschiedlichen Profile unterstützt in der Richtung.

Theoretisch wäre es möglich das man anhand des Benutzerlogins von Windows aber ein Script laufen lassen kann was den entsprechenden WTF-Ordner kopiert. Das würde dann so aussehen das man unter jedem Windows-Profil ein PowerShell-Script im Autostart hätte was dann von der entsprechenden Quelle den WTF-Ordner in das Ziel kopiert. Sinnvoll wäre hier auch das man vor dem eigentlichen kopieren auch den aktuell vorhandenen WTF-Ordner löscht.

Vom Ablauf her würde das so aussehen:

Windows-Login => Script kopiert WTF-Ordner des Benutzers => Login in WoW => Windows-Logout sichert aktuelle WTF-Version

Würde aber auch bedeuten, dass man beim Abmelden einen Script ausführen müsste, damit der Ordner wieder zurück gespielt wird, für den Fall, dass man Anpassungen gemacht hätte. So, wie du es ja auch geschrieben hast im Workflow.

In der Battle.Net App gibt es unter Einstellungen-> World of Warcraft Spieleinstellungen. Dort kann man zusätzliche Befehlszeilenargumente angeben. Hätte gehofft, da geht was?

Prinzipiell kann man das über Verzeichnislinks erreichen. (WTF in WoW ↔ WTF im Nutzerverzeichnis )
Normale links in die Nutzerverzeichnisse (C:\Users.…) funktionieren leider nicht direkt, so das man einen Umweg über Laufwerke (Netzwerkfreigabe via NAS o.ä.) oder Cloud Dienste gehen muss. Lässt sich dan auch auf mehreren Rechnern nutzen. Gehe den gleichen Weg um Addons und ebend Konfig aus WTF zwichen Rechnern im sync zu halten.

Ich mach mal ein Beispiel via OneDrive, sollte sich nur darin unterscheiden wo man das Neue Verzeichniss erstellt

Edit: Beispiel ersetzt mit Netzlaufwerk da ebend Nutzerverzeichnisse direkt nicht gehen
Im Kern geht es darum ein Netzlaufwerk zu erstellen welches auf ein eigenes Nutzerverzeichniss zeigt. Inhalte im Netzlaufwerk können dan mit WoW verlinkt werden.

Edit2: Hab die Steps jetzt nochmal lokal durchgespielt:

  • Verschiedene Nutzerverzeichnisse auf das gleiche Laufwerk mappen geht
  • verlinkung auf Netzlaufwerke nur als symbolischer link möglich
  • WoW mag keine sysmbolischen Links und überschreibt die einfach (hardlink oder junktion nötig)
  • somit ist das ganze obsolet und nur die Option weiter unten ggf. möglich.
1) Backup erstellen
```
cd D:\Blizzard\World of Warcraft\_retail_
```

verzeichniss verschieben (dient als backup)
```
move WTF WTF_OLD
```
  1. Netzwerkfreigabe erstellen für Nutzer

    • Verzeichnis erstellen wo alles später landen soll (lokal oder remote (NAS, anderer Rechner etc.) möglich)
    • Verzeichnis freigeben (unter windows lokal rechtsklick auf verzeichnis → Eigenschaften → Freigabe)
    • Wenn lokal in diesem Verzeichnis für jeden Nutzer ein eigenes Verzeichnis erstellen sowie das WTF Verzeichnis.
    • kann natürlich für jeden Nutzer auch eine eigene Freigabe geben spielt keine wirkliche rolle

    kann dan beispielsweise so ausschauen:

    | Freigabe
    |   Nutzer A
    |     WTF
    |   Nutzer B
    |     WTF
    
  2. Netzlaufwerk erstellen für diese Freigabe (auf dem Rechner an dem Gespielt wird). Muss man für jeden Nutzer einmal machen und muss auf die Freigabe für den Nutzer zeigen

    • entweder über Windows Explorer → Netzwerk (oder oben in der suchleiste einfach \ [\localhost wenn lokal erstellt] )
    • rechtsclick → Netzlaufwerk Verbinden
    • oder via cmd (/user: ist für den Nutzernamen mit dem man sich anmeldet)
      lokal:
      net use Y: \\localhost\<pfad zur freigabe für den Nutzer> /user:<Nutzername> /persistent:YES
      
      remote (NAS):
      net use Y: \\<Rechner IP>\<pfad zur freigabe für den Nutzer> /user:<Nutzername> /persistent:YES
      
  3. WTF Verzeichnis erstellen wenn noch nicht erfolgt

    mkdir Y:\WoW\WTF 
    
  4. Verlinkung auf Netzlaufwerk erstellen

    mklink \j  WTF "Y:\WoW\WTF"
    
  5. Daten aus dem Backup kopieren

    xcopy /E WTF_OLD WTF
    

mklink: https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/mklink
xcopy: https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/xcopy
move: https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/move
mkdir: https://learn.microsoft.com/de-de/windows-server/administration/windows-commands/mkdir
net use: https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/gg651155(v=ws.11)

Da hast aber das Problem das die Variable %UserProfile% nicht dynamisch ausgetauscht wird wenn der Link gesetzt wird. Jedenfalls ist das so der letzten Stand das Windows das nach wie vor nicht dynamisch anpassen kann.
Sieht man auch in den Eigenschaften der Verknüpfung das direkt der Pfad des Userprofiles eingefügt wird. Aber generell sinnvoll das auch so zu machen wenn man mehrere Devices hat auf denen man WoW spielt.

Ansonsten, kleine Korrektur

mklink /j  WTF "%UserProfile%\OneDrive\WoW\WTF"

Deswegen schrieb ich, das dies über einen Cloud Dienst oder eben Netzlaufwerk gemapt werden soll.

In meinem Beispiel ist es OneDrive und das legt seine daten dort ab. Aber ja das muss natürlich direkt aufs OneDrive Zeigen für den Link.

Machst du das via Netzlaufwerk könnte da auch Y:\WoW\WTF stehen

Ich genauso weil ich Desktop und Laptop habe wo ich auf beiden Geräten die gleichen Einstellungen verwende.

Wenn ich jetzt aber einen Symlink setze, so dass WoW auf den Ordner in meiner Nextcloud zugreift für den WTF-Ordner, steht auch der Originale Pfad so drin und nicht als Variable. Soll heißen wenn ich zwei User auf einem Rechner habe mit einer WoW-Installation hat man dadurch nicht gewonnen wenn man unter User 1 den Symlink einrichtet und dann unter User 2, weil am Ende verweist der Pfad auf den zuletzt angelegten Symlink.

Hast du natürlich Recht, schlechtes Beispiel. Ich mach ein neues via Netzfreigabe.

Dürfte sehr wahrscheinlich auch nichts bringen.
Die Dateistruktur weiß ja nichts von das es zwei User sind. Der Client sieht nur den einen User und hat dementsprechend nur einen aktiven User.

Was mir aber gerade dazu einfällt wäre der Aspekt unterschiedliche Accounts. Normal sieht die Ordnerstruktur bei einem Nutzer ja so aus:

WTF -\
     |- Account
     |  |- Useraccount
     |  \- SavedVariables
     |
     |- SavedVariables
     \- diverse Files

Bei einem Client wo mehrere Useraccounts genutzt werden würde das dann so aussehen:

WTF -\
     |- Account
     |  |- Useraccount1
     |  |- Useraccount2
     |  |- Useraccount3
     |  \- SavedVariables
     |
     |- SavedVariables
     \- diverse Files

Anstatt jetzt direkt einen Symlink auf den gesamten WTF-Ordner zu machen kann man das auch auf den entsprechenden Useraccount machen. Der Inhalt von SavedVariables in dem Fall ist vernachlässigbar weil da nur die Sachen der Blizzard-Schnittstellen für Combatlog usw drin sind.

Muss man halt darauf achten das man den korrekten Pfad einstellt, sollte aber machbar sein, dann könnte man einmal das Netzwerklaufwerk nehmen und trotzdem pro Windows-Login auf einen eigenen Ordner verlinken ohne ein Script zu benutzen.

Kannst allerdings ein Netzlaufwerk erstellen welches auf eine nutzerspzifischen Freigabe Zeigt. Diese kannst du dan verlinken da statisch.

mklink \j  WTF "Y:\WoW\WTF"

wobei Y:\ dan entsprechend des angemeldeten Nutzers auf eine eigene Freigabe zeigt.

Verlinken der einzel Accounts wäre natürlich deutlich einfacher, allerdings erschließt sich mir nicht wiso es probleme mit überschrieben Settings gibt da diese eh Accountbezogen geladen werden.

Das dann eine andere Sache.
Hier weiß ich jetzt nicht ob das nach Lizenz oder BNet-Account getrennt wird. Würde eher mal vermuten nach Lizenz, da der BNet-Account schon vorher via BNet-App abgefragt wird.

Vlt reicht auch schon das als Parameter: -datadir D:\WoW1 -cascdir D:\WoW1 und im zweiten Bnet account dan ein anderes Verzeichniss -datadir D:\WoW2 -cascdir D:\WoW2
Würde voraussetzen das separate Bnet konfigurationen pro account möglich sind. Kann ich mangels Accounts allerdings nicht testen.
Gibt dan ne separate Installtion in diesem Verzeichniss. (Wird beim ersten start erstellt)

Edit: Hier gibts ne Parameterübersicht allerdings kein Details https://wowpedia.fandom.com/wiki/List_of_Command-Line_Switches

2 Likes

Ich denke ich schaffe es spätestens morgen das zu testen. Der Pfad müsste aber zu 2 verschiedenen WTF-Ordner und nicht zu verschiedenen Rootverzeichnis führen.

An 2 Speicherorte für WoW hatte ich auch schon gedacht, finde ich aber anhand der Spielgröße nicht so prickelnd.

Der Pfad in dem Parameter wäre ein komplett eigenes Installationsverzeichnis (mit deinen Worten Rootverzeichnis), analog zu .../_retail_/..., .../_ptr_/..., .../_beta_/... , etc.
In diesen Verzeichnissen befindet sich auch nur Teile der Daten. Bei mir sind das so um die 400MB.
Der großteil verbleibt unter ..../World of Warcraft/Data wo dan Gigabyte weise gepackte Daten liegen.

ggf. kann man das -cascdir auch für beide verwenden und nur ein separates -datadir für jeden Account nutzen. Soweit ich das sehe, sind im -cascdir die Referenzen auf die gepackten Gamefiles. Die sollten ja identisch bleiben und machen den großteil aus.

Sollte dan in etwa so ausschauen (pfad beispielhaft):
Bnet Account 1: -datadir "D:\WoW\Nutzer1" -cascdir "D:\WoW\shared"
Bnet Account 2: -datadir "D:\WoW\Nutzer2" -cascdir "D:\WoW\shared"
Wenn das Probleme geben sollte dan auch das -cascdir ins gleiche Verzeichnis wie -datadir

Inhalte aus _retail_/WTF und _retail_/Interface sollten dan einfach zu kopieren sein in die neuen Verzeichnisse.

Inhalte von dem was ich gesehen habe.
-datadir "D:\WoW\Nutzer1"

D:\WoW\Nutzer1\
|- Cache
|- Interface
|- Log
|- WTF

-cascdir "D:\WoW\shared"

D:\WoW\shared\
|- config
|- data
|- indices

Aber wie gesagt, das setzt vorraus das du in jedem BNet Account eigene Parameter angeben kannst.

1 Like

Moin Moin,

danke für die ausführlichen Antworten.

Ich habe unter ACC 1 die Parameter angepasst:
-datadir „C:\Program Files (x86)\World of Warcraft\Test\ACC1“ -cascdir „C:\Program Files (x86)\World of Warcraft\Test\shared“

WoW starten und führt kurz einen Wizzard aus.
Beim Überprüfen des Ordners C:\Program Files (x86)\World of Warcraft\Test konnte ich aber nur einen Ordner shared finden. Hier hätte doch auch ein Ordner „ACC1“ sein müssen?

Unter dem zweiten WindowsUser waren die Parameter nicht vorhanden und ich konnte diese angepasst hinterlegen:
-datadir „C:\Program Files (x86)\World of Warcraft\Test\ACC2“ -cascdir „C:\Program Files (x86)\World of Warcraft\Test\shared“

Der bereits existierende Shared-Ordner wurde beim Start von WOW mit ACC2 nicht angepasst. Auch wurde kein weiterer Userordner angelegt.

Wenn ich dich richtig verstanden habe, hätte ein neuer WTF-Ordner hier angelegt worden sein: C:\Program Files (x86)\World of Warcraft\Test\ACC2

Ich habe nun den WTF-Ordner unter C:\Program Files (x86)\World of Warcraft_retail_ gelöscht und WOW neu gestartet. Der Ordner wird hier wieder angelegt.

(ACC1 & ACC2 sind hier nur anonymisiert, sie sich eigentlich die BattleNet-ACC, wie im originalen WTF-Ordner)

Warum wird kein UserOrdner angelegt?

Ich nutze mal deine Verzchnisse.

Unter C:\Program Files (x86)\World of Warcraft\Test\ACC1 müsste er nach dem Start Cache, Interface, Log und WTF anlegen.

Wenn er diese unter retail erneut angelegt hat, scheint er den angegebenen Pfad nicht gefunden zu haben.

Was passiert wenn du es exakt so angibst: -datadir "C:\Program Files (x86)\World of Warcraft\Test\ACC1" -cascdir "C:\Program Files (x86)\World of Warcraft\Test\shared"
ACC1 muss angelegt sein.

Edit, gerade nochmal getestet wann dein geschildertes Problem auslößen könnte:

  • das Verzeichnis was angegeben ist muss exakt stimmen
  • das Verzeichnis was eingetragen ist muss bereits exisitieren
  • es darf kein \ am ende sein

Wie du das Verzeichniss nennst ist egal, er legt darin alles neu an ( WTF etc) und darin dan die account spezifischen dinge.

1 Like

Moin,

ich habe das mal getestet. Wenn ich -datadir „C:\Program Files (x86)\World of Warcraft\Test\ACC1“ -cascdir „C:\Program Files (x86)\World of Warcraft\Test\shared“ eintrage, ändert sich nichts.

Ich verstehe es doch richtig, dass diese Befehle einen Ordner Test anlegen sollen. Darin 2 Weitere Ordner Namens shared und ACC1 in diesem fall?

Wenn dem so ist, findet er ja den Pfad C:\Program Files (x86)\World of Warcraft\Test und legt dort Test an. Des Weiteren legt er da, wo er ACC1 anlegen soll, auch shared an.

Was ich damit meine ist, dass ich auch daran dachte, dass er den Pfad nicht zu finden scheint. Aber er legt dennoch shared an. Also ist es ja ausgeschlossen. Aber vllt. fehlen ihm die Rechte.

Dennoch bin ich dem mal nachgegangen und habe im Ordner Test einen Oder ACC1 per Hand angelegt. Ich habe den WTF Ordner unter _retail gelöscht und wow neu gestartet.

Und das klappt. WTF ist nun unter ACC1 im Ordner Test. Scheinbar kann datadir keinen Ordner erstellen. Am Wochenende sollte es mir möglich sein zu testen, ob nun die Einstellungen auch wirklich komplett unterschiedlich sein können, auch wenn nur einer Add-Ons wie ELVui nutzt.

Ja, -cascdir erstellt er automatisch, -datadir aber aus irgend einem Grund nicht.

Dan viel erfolg :slight_smile:

Edit: Für die Nachwelt:

  • Verzeichnisse für Nutzer erstellen (bsp: D:\Wow\Acc1, D:\WoW\Acc2,…)
  • Verzeichniss für Spieldaten erstellen (bsp: D:\WoW\shared)
  • In Battlenet → Spieleinstellungen (Zahnrad neben Spielen) → Zusätzliche Befehlszeilenargumente aktivieren
  • dort eintragen: -datadir D:\WoW\Acc1 -cascdir D:\WoW\shared (alternativ kann -cascdir auch auf das vorhandenen _retail_ Verzeichnis zeigen)
1 Like

Moin Moin,

das Problem ist behoben.
User 1 kann in ELVui tun und machen was er will. User2 merkt davon nichts.

Aber: Scheibar wird das Spiel nochmal heruntergeladen. Beim Spielen merkte man anfangs immer Performanceeinbrüche und der Ladebalken (der sich drehende Kreis ingame) wurde immer angezeigt.

Der Shared-Ordner ist nun 97GB groß. Es macht also fast kein Unterschied, ob man diese Variante wählt, oder doch lieber WOW 2 mal installiert und jeder Battle-Net-Acc hat sein eigenes Installationspfad.

1 Like