Decorations (Headquarters and Hero Looks)
“Decoration” means two different things in Lost Saga. This page covers both.
| Kind | What it is | Server files | Client files |
|---|---|---|---|
| Headquarters blocks | Blocks, tiles and objects a player places in a headquarters (housing) | sp2_block.ini, sp2_personal_room_block.ini, sp2_guild_room_block.ini |
config\housing\sp2_block.ini |
| Hero deco items | Hair, face, skin, hair colour, basic clothes, race | sp2_deco_sex.ini, sp2_deco_man.ini, sp2_deco_woman.ini |
sp2_deco_man.ini, sp2_deco_woman.ini, sp2_decoitem_list.ini |
Server files live in ls_gamesvr\config\. Client paths below were checked in the unpacked 2021 client. In 2014 and 2019 the client files sit inside rs.iop, which was not opened for this page. Open them with the pack tutorials and edit an INI table.
Server and client must agree. The server uses its own sp2_block.ini to check the default blocks (IsValidItemCode) and to get block collision data (GetCoordinateInfo). What a mismatch does in play was not tested yet, for blocks and for deco items.
Part 1: Headquarters blocks
Section titled “Part 1: Headquarters blocks”How the files work
Section titled “How the files work”sp2_block.inilists every block.[common] block_maxis the number of[blockN]sections the loader reads, fromblock1up toblock<block_max>. The client skips a section withcode0 and writes “Block Manager Load Fail” to its log.- The server (
ioBlockPropertyManager.cpp) reads onlycode,rotateand thecollision_tile<j>_x/_y/_zkeys. It needs them to check where a block may stand. - The client (
ioBlockManager.cpp) reads the same file and also the looks:name,mesh_file,icon_name,item_category,order,shadow_typeand the colours. - The first digit of
code(code divided by 1000000) is the block type:1normal,2tile,3fishing block. sp2_personal_room_block.ini(HomeModeBlockManager.cpp) andsp2_guild_room_block.ini(GuildRoomsBlockManager.cpp) hold the default layout of a new headquarters in[default_construct].
In the 2021 testbed the server sp2_block.ini and the client config\housing\sp2_block.ini are byte for byte the same file (62 blocks, block_max = 62). Keep it that way: edit one, copy it to the other.
Add a block
Section titled “Add a block”- Pick a free code. The highest normal code in the shipped file is
1000062. Tiles use2000001to2000003, and the fishing block is3000013. Do not reuse a code. - Put the model in the client at
resource\model\staticmodel\(for examplehousing_00_obj_block_01.txt; the 2021 client has 46housing_*files there). - Add a section at the end of
sp2_block.iniand raiseblock_maxby one:
[common]block_max = 63
[block63]code = 1000063name = My blockorder = 11item_category = 1rotate = 0shadow_type = 2collision_tile_max = 1collision_tile1_x = 0collision_tile1_z = 0collision_tile1_y = 0mesh_file = staticmodel/housing_00_obj_block_01.txticon_name = GuildHousing001#obj_block_01item_categoryfollows the comment in the file: 1 blocks, 2 tiles, 3 decorations, 4 functions. It sets the tab in the decoration inventory.- A block bigger than one tile needs one
collision_tile<j>_x/_z/_ytriple per tile, withcollision_tile_maxset to the count. - Copy the file to both places (server and client) and restart the game server.
Change the default layout
Section titled “Change the default layout”In sp2_personal_room_block.ini or sp2_guild_room_block.ini:
[default_construct]item1=2000001XZ1=560Y1=1direction1=0Each itemN needs a matching XZN, YN and directionN. The server stops at the first itemN that is 0 (up to 4000 entries), and skips a code that is not in sp2_block.ini (log line “Invalid default block coordinate info”). limited_install_cnt caps how many blocks a headquarters may hold: the guild file sets 3000 under [common]; the personal file has no such line in the testbeds, so the value is 0 there. What 0 means in play is not confirmed yet.
Which mode opens the headquarters
Section titled “Which mode opens the headquarters”sp2_mode_select.ini has [HomeModeList] (personal headquarters, mode index 24) and [HeadquartersList] (guild headquarters, mode index 14). See Modes.
Part 2: Hero deco items
Section titled “Part 2: Hero deco items”How the files work
Section titled “How the files work”sp2_deco_sex.inilists the sexes.[Info] max_sex = 2, then[Sex1]and[Sex2]withSexandDeco_ini(the man or woman file).- In
sp2_deco_man.iniandsp2_deco_woman.ini,[Info] max_Deco = 6is the number of[DecoN]groups. The server (ioDecorationPrice.cpp) reads each group. [DefaultN]groups give the look a new hero starts with. The keys areType,MaxandCode_<k>. Optional[special_default<n>]sections can set face, hair, skin, hair colour and underwear per class.- Group types in the 2021 file:
| Type | Group |
|---|---|
| 5 | Race and sex |
| 2 | Hair style |
| 4 | Hair colour |
| 1 | Face |
| 3 | Skin colour |
| 7 | Basic clothes |
Add or change an item
Section titled “Add or change an item”- In the server file, add the item to the right
[DecoN]group and raiseMax:
Code_64 = 64Name_64 = Example hairPeso_64 = 3000Cash_64 = 600BonusPeso_64 = 3600SellPeso_64 = 600LimitLevel_64 = 0Active_64 = 1Active_<k>is read with a default of off. An item withoutActive_<k> = 1is not sold.- In the client file add the same
Code_<k>, plus the keys the shop shows:Name_,Icon_,manual_,InvenManual_,ShowPeso_,ShopOrder_,ShopMarkType_,PackageActive_. These are read by the client only. sp2_decoitem_list.ini(client) is a second list used by the deco item window:[DecoMan]withitem_cntanditemN_name,itemN_code,itemN_icon,itemN_shop_order. Whether a new item must also be added here is not confirmed yet.- The mesh and texture for the item live in the client packs. Not confirmed yet which files a new hair or face needs.
- Restart the game server. Prices (
Peso_,Cash_) must be the same in both files, or the shop shows one price and the server charges another.
Where 2014, 2019 and 2021 differ
Section titled “Where 2014, 2019 and 2021 differ”| Point | 2014 | 2019 | 2021 |
|---|---|---|---|
| Housing files | Present (sp2_block.ini, personal and guild room files) |
Same | Same |
Names in sp2_deco_man.ini |
Name_k = STR(n), a text key |
STR(n) |
Plain Korean text |
| Server file size (man) | 63263 bytes | 73079 bytes | 45441 bytes |
| Extra keys in the server file | Icon_, manual_, ShopOrder_ (client style) |
Same | Not present |
STR(n) is a placeholder the client replaces from its text table (see Text and Languages). The game server source has no STR( handling, so on the server it stays as is.
Check it
Section titled “Check it”- Start the client, open the headquarters and the deco inventory. The new item must show with its icon.
- A raw name such as
STR(2)or an empty icon means the client text or image set is missing. - In-game results for new blocks and deco items were not tested yet.
