Actually, the command only exists because I requested it. :spotted owl: Formulator, my cloneform management tool, needs to be able to uniquely identify a magic effect for its database keys. Until GetMagicEffectChars was implemented I was using the full text name of the effect, but of course with OBME there's a reasonable likelihood of duplicate names. (Even within one mod -- but Formulator can encounter every mod's effects.) And while I can sanitize a FormID with GetNthModName, there's no clean way to handle a dynamic effect code with only OBSE commands.
Effect codes are the only (trust me on this) reliable way to identify magic effects. I'm not particularly happy about this, but then it wasn't my decision.
The 'effect chars' are just the effect code by another name. They contain no addition information, and I don't see how they would be useful to you. If you want a string to uniquely identify the effect, why not just convert the effect code to a string using the $ operator?
I'll admit that dynamic effect codes will greatly complicate your database, for which I'm sorry. They weren't my first choice. To sanitize them safely, I'd suggest something like this:
;; get the mgef code currently stored in the databaseif (GetGameLoaded) && (IsPluginInstalled OBME) ;; game reloaded since last frame, and OBME is present - resolve mgef code set storedMgefCode to (ResolveMgefCode storedMgefCode)endif;; put the sanitized code back in the database, use it for something, etc.
I know that conditional support for other mods is tacky and difficult to maintain, but if you choose to support dynamic effect codes then I'm afraid it will be required (again, trust me). Note that you'll need OBME to compile the script, but not to play the mod itself.