STL Editor is an all-in-one ROSE STL editor. In ROSE, an STL file is not a 3D model format but a set of text strings that the game engine displays. Much of the game's text is held in these files.
Unlike some other editors that only display the English columns or try to optimize by removing Asian languages and unifying the offset values to be clever, this STL editing program follows the format to the letter of the law and implements all of its features without question. Following the specification is vital to producing working STL files. Ignoring the details of the spec, like some editors do, leads to file corruption, garbled in-game text, and strings that just run together with no rhyme nor reason.
Some Technical Background
STL files are basically Excel spreadsheets. This is actually how Triggersoft made them back in the day; they'd use Excel to make the data and then use a custom tool to convert the spreadsheet file to the STL file format.
The STL format is set up to support multiple languages. The client pulls the data it needs from the column or columns based on the language it's configured to display.
There are three main types of STL files, denoted by the seven byte header string. The first byte of the file is the length of the string (the value of 6, not the ASCII number 6) and then the format type.
- NRST01: This is the most basic format. It's the second-most used format in the standard data set. This has one column per language. It's generally referred to as the "Normal" STL file. STR_PLANET.STL, LST_CLASS_S.STL, and LIST_EVENTSTRING.STL are examples of standard files that use this format.
- ITST01H: This is the most common format in the standard data set. This has two columns per language. It's generally referred to as the "Item" STL file, as it's used for all item descriptions in the game. LIST_CAP_S.STL, LIST_FACEITEM_S.STL, and LIST_ZONE_S.STL are examples of the standard files that use this format.
- QEST01: This is the most uncommon format in the standard data set. This has four columns per language, more than any other. It's generally referred to as the "Quest" STL file, as its primary purpose is for LIST_QUEST_S.STL. Aside from that file, LIST_STATUS_S.STL also uses this format.
Using STL Editor
STL Editor can edit any standard STL string file or create new ones in all three formats. All of the languages are displayed at once. The File menu has all the options for creating, loading, and saving STL files. The Edit menu has all of the standard CCP options, plus row manipulation options. You can add new rows in bulk at any place in the data. You can also delete any number of rows in the data, starting at whatever row you specify. To manually add a new row at the end of the data, just type in some text on the row with the * symbol in the index column (the very first column to the left); a new row will be automatically created for you. The Search menu allows you to do search-and-replace functions (as of this writing, this option is still being worked on, so it's disabled). The Operations menu has useful editor functions (this menu is also being worked on as of this writing, so it's currently disabled). The Help menu contains options to access the online help (where you are right now), or view the About data.
The STL usage protocol requires that each file has an ID tag for any row that is valid. STL Editor will fill in default values for these if they are not manually entered before saving, though you will want to enter them yourself at some point so that they actually have useful values. For example, LIST_ARMS_S.STL uses LARMxxx by default, where xxx is a three-character integer value. Generally speaking, that value will be the same as the row number. Some files simply use the row number for this column, such as LIST_STRING.STL. If you are simply editing an existing client data set, it's best practice to maintain the convention that the file already uses. If you're doing up a new client from scratch, you can go as crazy as you want with the convention, provided you also use your custom convention in the matching STB file, when applicable.
The Standard Languages
ROSE has five standard languages that are supported by all clients. In STL Editor, these are displayed by number.
- 0: Korean. This is the default language, as this game was developed in South Korea.
- 1: English. Chances are good that this is the language you're going to be editing the most.
- 2: Japanese.
- 3: Chinese Traditional.
- 4: Chinese.
Some clients implement additional languages. There is no standard convention beyond the five original languages supported by ROSE. You are not required to support languages you don't intend to support, even within the five standard languages. The editor will ensure that all language fields contain the bare minimum data (a string terminator).
Not everything is currently implemented. There are plans to manage additional languages, implement autofill options, and whatever other function might be useful.