Multilanguage System

System is currently not on sale. Will be available soon.

Add multi-language support to your game. With that addition, server-side locale files have been moved to the client side.

Game Messages

With moving locale_string.txt to the client-side, chat packets now consist of string index and variadic arguments. Below is a table that represents new functions for appending game messages to the player’s screen.

Configuration file locale_string.txt, as mentioned above, has been moved to the client side. Its structure is shown in the image below:

Messages are now collected inside an enum class, generated by a python script from the locale_string.txt.

The table below represents new functions to send chat packets to the player.

OldNewArguments
ChatPacketLocaleChatPacketchat type: byte,
string index: enum (uint),
variadic arguments
BroadcastNoticeBroadcastLocaleNoticechat type: byte,
string index: enum (uint),
variadic arguments
SendNoticeMapSendLocaleMapNoticemap index: uint,
chat type: byte,
string index: enum (uint),
variadic arguments
SendNoticeSendLocaleNoticechat type: byte,
string index: enum (uint),
variadic arguments

Quests

Same as game messages, quest texts have also received a revamp and are now index-based. The image below shows a new way of writing quests.

Quests texts are now loaded from locale_quest.txt on the client-side instead of the usual translate.lua file.

OldNewArguments
saylocale_saystring index: int,
variadic arguments
say_titlelocale_say_title
string index
: int,
variadic arguments
say_rewardlocale_say_reward
string index
: int,
variadic arguments
set_titlelocale_set_title
string index
: int,
variadic arguments
set_title2locale_set_title2quest title: string,
string index: int,
variadic arguments
send_letterlocale_send_letterstring index: int,
variadic arguments
send_letter_exlocale_send_letter2string index: int,
icon type: string,
icon string: string,
variadic arguments
quest_buttonlocale_quest_buttonstring index: int,
variadic arguments
quest_button_exlocale_quest_button_ex
string index
: int,
icon type: string,
icon string: string,
variadic arguments
noticelocale_noticestring index: int,
variadic arguments
notice_alllocale_notice_allstring index: int,
variadic arguments
map_noticelocale_map_noticestring index: int,
variadic arguments
say_in_maplocale_say_in_mapmap index: int
string index
: int,
variadic arguments
selectlocale_selectvariadic arguments
chatlocale_chatquest string: locale_quest(int)

Variadic arguments can also be locale strings of other types such as item names, monster names, etc.

locale_item(int)Append the item’s name.
locale_mob(int)Append the monster’s name.
locale_skill(int)Append skill’s name.
locale_quest(int)Append a quest string.
locale_string(int)Append a locale string.

Miscellaneous

  • Settings

Language can be selected at System Settings. After applying the language, the client has to be restarted. The language list can be scrolled using the middle mouse wheel button.

Language preview can be turned off/on in the Game Settings window.

  • NPC Names

Non-player names are now loaded from the client instead of using names from the server.

  • Item Names

Item names in hyperlinks are now shown in the player’s selected language.

  • Chat

The player’s selected language will be shown in chat next to the name.

  • Messenger

The player’s selected language will also be shown in the private chat window.

  • Player Texttail

Last but not least, the player’s selected language will also be shown next to the name.

  • Monster Chat

So-called monster chat messages are now selected from the client side.

  • Quiz

Quiz questions from the OX event are also loaded from the client-side. The image below represents its structure.

Languages: C++ / Python / Lua

Technical requirements:

Digital Good: 300€

  • Multilanguage System
  • Locale Files Conversion Script
  • Game Messages Conversion Script
  • Game Messages Enum Generation Script
  • Quest Conversion Script

Discord Contact: Sonitex#1880