Elvui Profile Converter

ElvUI Profile Converter is typically a tool or plugin used to bridge compatibility between different versions of the ElvUI addon, such as moving profiles between "Retail" and "Classic" WoW or updating old profile strings to a newer format. Key Tools & Methods AcidWeb ElvUI Profile Converter

: A widely used tool that converts old profile exports to the new format. It adds a "Profile Converter" button directly into the ElvUI settings Backport Converters

: Specifically for legacy servers (like version 3.3.5), tools like the ElvUIBackport Profile Converter allow users to convert new profile strings from sites like to older, compatible formats. Manual Transfer elvui profile converter

: Most profiles can be moved between game versions (e.g., Classic to Retail) by simply using the built-in Export Profile feature in one version and pasting that string into the Import Profile field in the other. Common Usage Steps Open ElvUI Config Access Profiles : Navigate to the tab on the left-hand menu. Use Converter/Import If using a plugin, click the Profile Converter If importing manually, click Import Profile , paste the code into the text box, and hit Import Now Are you trying to backport a modern profile to a legacy version of WoW, or fix an "Error decoding data" message during import? ElvUI Profile Converter - GitHub

A small tool that allows converting old profile exports to the new format. Usage: Profile Converter button in ElvUI settings. ElvUI Profile Converter is typically a tool or

Exeasd/ElvUIBackport_ProfileConverter: A small tool ... - GitHub


Understanding ElvUI Profiles

Before diving into the conversion process, it's essential to understand how ElvUI profiles work. A profile is a collection of settings that define the layout, appearance, and behavior of the ElvUI interface. There are two main types of profiles: ElvUI Profile : A standard ElvUI profile, which

  1. ElvUI Profile: A standard ElvUI profile, which contains all the settings for the interface, including layout, colors, fonts, and more.
  2. ElvUI Config Profile: A config profile is a subset of the ElvUI profile, focusing on the layout and some specific settings.

Why Would You Need One?

Converting from Shadowed Unit Frames (SUF) to ElvUI

While rare, some converters now support cross-addon conversion. They read a SUF profile string, map "Health Bar Height" to ElvUI's health.height, and generate a starter ElvUI profile. Note: This is never 100% perfect but saves hours of manual work.


Error D: Keybindings don't work after conversion


The Anatomy of an ElvUI Export String

An exported string looks like garbage: Lsx4fJ3e... but it is actually Base64 encoding of a compressed Lua table.

The Decoding Process:

  1. Base64 Decode: Converts text back to binary/bytecode.
  2. Decompress: Most modern ElvUI exports are compressed using zlib.
  3. LoadString: Lua interprets the resulting bytecode as a table.

Why this matters for converters: When a website converts a file to a string, it performs the reverse: Table -> Serialize -> Compress -> Base64 -> Text.

Code Implementation

local E, L, V, P, G = unpack(ElvUI)
local ProfileConverter = E:NewModule("ProfileConverter", "elvui")
function ProfileConverter:Initialize()
    -- Profile detection and conversion logic
    self:RegisterEvent("PLAYER_ENTERING_WORLD", function()
        local profileName = E.db.name
        if profileName then
            local profileVersion = E.db.profileVersion
            if profileVersion and profileVersion < 12 then
                self:ConvertProfile(profileName, profileVersion)
            end
        end
    end)
end
function ProfileConverter:ConvertProfile(profileName, profileVersion)
    -- Conversion logic for profiles from version 10.00 to 11.99
    local conversionFunctions = 
        ["10.00"] = function() self:ConvertFrom1000(profileName) end,
        ["11.00"] = function() self:ConvertFrom1100(profileName) end,
        -- Add more conversion functions as needed
if conversionFunctions[profileVersion] then
        conversionFunctions[profileVersion]()
    else
        -- Handle unknown profile version
        E:Print("Unknown profile version:", profileVersion)
    end
end
function ProfileConverter:ConvertFrom1000(profileName)
    -- Conversion logic from ElvUI 10.00
    local profile = E:CopyProfile(profileName)
    -- Apply conversion changes
    -- ...
E:UpdateProfile(profileName)
    E:Print("Profile converted from 10.00:", profileName)
end
function ProfileConverter:ConvertFrom1100(profileName)
    -- Conversion logic from ElvUI 11.00
    local profile = E:CopyProfile(profileName)
    -- Apply conversion changes
    -- ...
E:UpdateProfile(profileName)
    E:Print("Profile converted from 11.00:", profileName)
end
-- Register the ProfileConverter module
E:RegisterModule(ProfileConverter:GetName())