Page MenuHomeFeedback Tracker

BattleEye Initialization Failed when Windows user profile path contains special characters
New, WishlistPublic

Description

On Windows Vista / 7, DayZ creates a folder inside %UserProfile%\AppData\Local\DayZ for some internal purposes, BattleEye is one of the main consumer.

Mostly on NTFS partitions, this worked pretty well for Windows user account names with normal alphabet characters, such as "Brian" or "David". DayZ will be able to function, so does BattleEye. Therefore the environment variable, %UserProfile% = C:\Users\Brian, as expected from Windows ( assuming system drive is on C: ).

However, not everyone uses plain text names for themselves. Some chose to add special characters in their names to look cool. Such as "♠Brian" or "♦Brian". But when these names are activated on a Windows Vista / 7 installed on NTFS, Windows creates the user's profile name with the special characters *inclusive*! Therefore, %UserProfile% becomes C:\Users\♦Brian, or C:\Users\♠Brian.

This gives a problem for DayZ / BattleEye, because DayZ / BattleEye simply reads the environment variable as an ANSI string, instead of Unicode/UTF8 string. Special characters like "♠" or "♦" will be truncated to "?". Therefore the %UserProfile% value becomes C:\Users\?Brian. This caused BattleEye to show the error message like, "BattleEye initialization failed.", "Using a modified version of c:\Users\?Brian\AppData\Local\DayZ\MPMissionsCache\__cur_mp.pbo".

Conclusion, this is a BUG. Parse the paths as UTF8/Unicode strings, but NOT ANSI strings in the codes.

Details

Legacy ID
2236614715
Severity
None
Resolution
Open
Reproducibility
Always
Category
Error Message
Steps To Reproduce
  1. On any Windows 7 Ultimate machine installed on NTFS partition, by any means, create a new user with username "♠Brian" or "♦Brian".
  2. Make sure that any folders with the name "♦Brian" does not exist in C:\Users.
  3. Logout of it, and login with the new username, eg: "♦Brian".
  4. After the initial login, Windows will create the user profile folder, C:\Users\♦Brian. Simply open a command prompt, it will bring you to that folder.
  5. Assure that the user profile path C:\Users\♦Brian is created by Windows.
  6. Install Steam, Install DayZ.
  7. Start DayZ, join ANY server.
  8. You will see the error "BattleEye Initialization Failed"
  9. Search for other log files like C:\Users\♦Brian\AppData\Local\DayZ\DayZ.RPT or c:\Program Files (x86)\Steam\steamapps\common\DayZ\net.log for more details.
Additional Information

Event Timeline

raistlin999 edited Additional Information. (Show Details)
raistlin999 set Category to Error Message.
raistlin999 set Reproducibility to Always.
raistlin999 set Severity to None.
raistlin999 set Resolution to Open.
raistlin999 set Legacy ID to 2236614715.May 8 2016, 5:25 PM