2025-11-19

This summarizes the key items to configure the PowerShell Script to sync multiple EQ installs 
providing an archive, and allowing settings to be shared across computers if desired. Note at 
any time, you can update the vault in the script if you wish to create a new one while 
preserving older settings. The information below is for reference.

Files are stored in the vault based on type (see EQ Install Sync Configuration)

 <MasterBase> \ Version \ 

where items like AudioTriggers, character INIs, character UI INIs, custom maps, custom UI 
files, UI templates, userdata... are placed into. Any items with a Resolution setting, use
the Resolution value to help differentiate these files (e.g. eqclient.ini and character UI
INIs).

Run this script when EverQuest isn't running to ensure no data corruption. Potential future
project to setup a script to check for EQ running and dynamically run this automatically and
potentially a new feature to take snapshots (time intervals) of key files / secondary backup 
location option for redundancy.


##########################
##### Vault location #####
##########################

$MasterBase needs to be set to the file path for the vault. Cloud drives do work.

    'MasterBase'      = $OneDrive + '\Vault\EQ\_master-2025' 


#########################################
##### EQ Install Sync Configuration #####
#########################################

Template for each EQ install folder (Live, Test, different resolutions, eq client settings, etc.)
This can be copied into the $install for each installation.


** Make sure Version and Resolution are set appropriately for each install, these files will be
SHARED ** 

    @{
        "$DIR"     = 'C:\Users\Public\Daybreak Game Company\Installed Games\EverQuest'
        "$AT"      = @{
            Install = 'AudioTriggers'
            Version = 'Live'
        }
        "$CHAROTH" = @{
            Install = ''
            Version = 'Live'
        }
        "$CHARUI"  = @{
            Install = ''
            Version = 'Live'
            Resolution = '3440x1440-Windowed'
        }
        "$CSTMAPS" = @{
            Install = 'maps'
            Version = 'Live'
        }
        "$EQCLI"   = @{
            Install = ''
            Version = 'Live'
            Resolution = '3440x1440-Windowed'
        }
        "$UIF"     = @{
            Install = 'uifiles'
            Version = 'Live'
        }
        "$UIT"     = @{
            Install = ''
            Version = 'Live'
        }
        "$USR"     = @{
            Install = 'userdata'
            Version = 'Live'
        }
    }


Example of two installs:

$Installs = @(
    @{
        "$DIR"     = 'C:\Users\Public\Daybreak Game Company\Installed Games\EverQuest'
        "$AT"      = @{
            Install = 'AudioTriggers'
            Version = 'Live'
        }
        "$CHAROTH" = @{
            Install = ''
            Version = 'Live'
        }
        "$CHARUI"  = @{
            Install = ''
            Version = 'Live'
            Resolution = '3440x1440-Windowed'
        }
        "$CSTMAPS" = @{
            Install = 'maps'
            Version = 'Live'
        }
        "$EQCLI"   = @{
            Install = ''
            Version = 'Live'
            Resolution = '3440x1440-Windowed'
        }
        "$UIF"     = @{
            Install = 'uifiles'
            Version = 'Live'
        }
        "$UIT"     = @{
            Install = ''
            Version = 'Live'
        }
        "$USR"     = @{
            Install = 'userdata'
            Version = 'Live'
        }
    }
    @{
        "$DIR"     = 'C:\Users\Public\Daybreak Game Company\Installed Games\EverQuest-Test-Min'
        "$AT"      = @{
            Install = 'AudioTriggers'
            Version = 'Test'
        }
        "$CHAROTH" = @{
            Install = ''
            Version = 'Test'
        }
        "$CHARUI"  = @{
            Install = ''
            Version = 'Test'
            Resolution = '3440x1440-Windowed'
        }
        "$CSTMAPS" = @{
            Install = 'maps'
            Version = 'Test'
        }
        "$EQCLI"   = @{
            Install = ''
            Version = 'Test'
            Resolution = 'Min-3440x1440-Windowed'
        }
        "$UIF"     = @{
            Install = 'uifiles'
            Version = 'Test'
        }
        "$UIT"     = @{
            Install = ''
            Version = 'Test'
        }
        "$USR"     = @{
            Install = 'userdata'
            Version = 'Test'
        }
    }
)


####################
##### MIRRORS ######
####################

[[Custom uifiles]] MIRROR is used. This means that the "$MasterBase \$UIF Version\uifiles\<customUI>"
should be setup FIRST to contain your uifiles or you will lose them! This ensures custom UI
files are identical across all machines using the script.


########################
##### UI Templates #####
########################

You can define clean UI templates to archive/share using the "MasterBase\$UIT Version\User Templates" 
folder.

Naming: UI<text>template<text>.ini

e.g. UI_Magician_template_MAG.ini

NOTE: EQ currently appends _CLS to the file name to indicate the class. Use whichever makes sense
for you. Essentially, add the word template somewhere in the middle of the filename!