test content
What is the Arc Client?
Install Arc

Syntax error in UI file causes client to crash upon login

frtoasterfrtoaster Member Posts: 3,354 Arc User
edited June 2015 in PC Gameplay Bug Reports
Submitted on Holodeck as ticket #3,484,942

A syntax error in a UI file can cause the client to crash when the user attempts log in to a character. This bug report describes the cause of an error that I had previously encountered. See the bug reports below.

Holodeck ticket #3,477,127: Client crashes when I attempt to log on to certain characters
http://sto-forum.perfectworld.com/showthread.php?t=1468141
Customer support ticket #150526-001062

Also see the following bug report for the same problem on another account:

Holodeck ticket #3,477,176: Cannot log on to certain characters
Customer support ticket #150527-000016

When I filed the original bug reports, I did not know the cause of the error. Now that I know the cause, I am filing a new bug report to explain the cause.

NOTE: I have solved my own issue and can now log in to all characters on both accounts. But the bug remains for other users to stumble upon.

The error is caused by the adding the following lines to a UI file:

KeyBind
{
Key ,
Command "Team Heal $target"
}

Note that the problem is the comma, not the command "Team Heal $target". The comma is treated as a separator rather than a key to bind. In order to bind the comma key, you must escape the comma by either

(a) enclosing the comma within double quotes

or

(b) using a keyboard scan code written in hex (0x33 for scan code set 1).

It is fine to require commas to be escaped using one of the above methods, but the client should have reported a syntax error when it encountered the improperly formatted line. Instead, the client blindly accepted the input and sent corrupt data to the server. The client should display an error message when it encounters any syntax error, not just the one described in this bug report. Note that the client does not crash immediately after you load the file. You can continue playing as long as you stay on the same map. But once you change maps or log off and try to log back on, the client will crash.

Please note the following points. I mention them only because they were not clear to the customer support representative that I talked to.

1. Keybinds are stored on the server. They are not stored on the user's computer.

2. Editing the UI file on the user's computer will not affect the character unless the user logs in to the character and reloads the file. Similarly, deleting the UI file on the user's computer will not affect the character.

3. Keybinds are character-specific. They are not global to the whole account. You cannot use one character to change the keybinds on another character.

Running commands

To run a command, type the command in the text input box of the chat window and then press the Enter key. Commands given in quotes should be typed without quotes. The command /ui_save_file saves the character's UI settings and keybinds to a file named by the user. For example, "/ui_save_file ui_test.txt" saves this data to the file ui_test.txt. If you do not specify a directory in the path to the file, then /ui_save_file will write the file to the default directory, the location of which depends on where you installed the game. On my computer, the default directory for Holodeck is

C:\Games\Star Trek Online_en\Star Trek Online\Live

and the default directory for Tribble is

C:\Games\Star Trek Online_en\Star Trek Online\Playtest

The location on your computer may be different.

Steps to reproduce

1. Create a new character.
2. Run "/ui_save_file ui_crash_test.txt".
3. Open the file ui_crash_test.txt and find the line containing "pLooseUI".
4. Add the following lines above the line containing "pLooseUI":

Binds
{
Profile Stospacegameplay

KeyBind
{
Key ,
Command "Team Heal $target"
}
}

Binds
{
Profile Stogroundgameplay

KeyBind
{
Key ,
Command "Team Heal $target"
}
}

NOTE: UI files use tabs for indentation. The tabs might be stripped from my bug report.

5. Save your changes to ui_crash_test.txt and then close the file.
6. Run "/ui_load_file ui_crash_test.txt".
7. Press Esc, click "Change Character", and then click "OK".
8. Click "Play" to log back on the same character. The client will crash at the loading screen with the following error code:

Error Ticket ID: 43704593

9. Restart the client and try to log back on to the same character. The client will crash again at the loading screen with the same error code.
Waiting for a programmer ...
qVpg1km.png
Post edited by Unknown User on

Comments

  • crypticbatsoupcrypticbatsoup Member Posts: 25 Cryptic Developer
    edited June 2015
    Hey frtoaster, thanks for the report! A fix I made last Friday is already working its way to live for this exact crash, however knowing that the comma character in particular is causing "No Keybind" errors will help me get in a better working fix-up or some better error messaging for the problem.

    Sorry to hear that this was preventing you from getting in, but I definitely appreciate your sleuthing and happy to see you'll be on in time to bask in your accomplishment on Risa ;)
    Today is a good day to fix bugs.
  • frtoasterfrtoaster Member Posts: 3,354 Arc User
    edited June 2015
    Hey frtoaster, thanks for the report! A fix I made last Friday is already working its way to live for this exact crash, however knowing that the comma character in particular is causing "No Keybind" errors will help me get in a better working fix-up or some better error messaging for the problem.

    Sorry to hear that this was preventing you from getting in, but I definitely appreciate your sleuthing and happy to see you'll be on in time to bask in your accomplishment on Risa ;)

    Thank you for the update. Honestly, I don't expect many people would try to manually edit the UI file as I did. I've done it many times before and didn't really expect that a simple syntax error would prevent me from logging in. FYI, the problem does not occur with the punctuation marks below.

    . period
    ; semicolon
    [ left square bracket
    ] right square bracket
    / forward slash
    \ backslash
    = equals sign

    I'm not sure what other punctuation marks would cause the error, possibly left curly brace { and right curly brace }.
    Waiting for a programmer ...
    qVpg1km.png
Sign In or Register to comment.