Skip to content

Rune Tablet System

This page contains information about the System\Rune\ folder and all it's files, which I collected myself.

Note: There might be mistakes and misunderstandings in there, if you have more information about it, let me know.


The following list has the official name declared first, then the project's version.

Texture Folder

All textures are located in the data\texture\À¯ÀúÀÎÅÍÆäÀ̽º\runesystem\ folder.
Each file is declared/called via the files explained below.

Subfolders are:

Holds the center images for the Rune Tablets

Holds the center images for the Runes

Holds the small images for the Runes

Holds the images for the Tags

System/Rune | SystemEN/Rune

This is the main folder all related files are located.
The project uses, like other System folder related files, the SystemEN folder.
Also slightly different names compared to the official ones.

Guide Example

For the sake of showing examples, I will use one official entry:

Rune

Rp_Ep17_Melee - Doubtful Components(Melee)

Rune Tablet

Rt_Ep17_Doubt - Doubtful Components

runesystemid.lub | systemid.lub

This file is one of most important ones as it holds all entries required for the whole system to work.
It defines the Runes as well as the Rune Tablets (Set Effects) with a unique ID, which needs to match the server side, similiar to an Item ID.

There are three tables present:

RUNESETIDTBL

Holds the unique IDs for each Rune Tablet (Set), they start with 1260000
Key values (like Rt_Ep17_Doubt), have a prefix of Rt which is not required,
makes it easier to identify later on, based on my assumption it is short for Rune Tablet.

RUNEIDTBL

Holds the unique IDs for each single Rune, they start with 1263000
Key values (like Rp_Ep17_Melee) have a prefix of Rp which is not required,
makes it easier to identify later on, based on my assumption it is short for Rune Page.

RUNETAGIDTBL

Tags can be seen as categories, it also defines the texture file name:

  • tag\bt_tag_<Tag>_0.bmp
  • tag\bt_tag_<Tag>_1.bmp
  • tag\bt_tag_<Tag>_equip.bmp
Example
RUNESETIDTBL = {
	Rt_Ep17_Doubt = 1260000,
	
RUNEIDTBL = {
	Rp_Ep17_Melee = 1263000,

runeSystem_table.lub | System_table.lub

Contains Activation and Upgrade requirements which are defined via an index value,
they linked to info.lub (Rune_ActiveList) and set_info.lub (RuneSetActiveList/RuneSet_UpGradeList).

This file format is simple, based on the available "visual" slots, you can have up to 8 items.

RuneTable_itemList table

	[<Index>] = {
		{<ItemID>,<Amount>}
	}
Example

	[14] = {
		{1001364, 1},
		{1001365, 1},
		{1001366, 1},
		{1001367, 1},
		{25669, 75},
		{25668, 40}
	},

	[1] = {
		{25669, 75},
		{25723, 35},
		{25668, 5},
		{1001282, 150},
		{1001283, 1}
	},

rune_info.lub | info.lub

Runetbl_info table

This file holds the item list requirements to activate Runes.

Defines the Texture file name

Refers to the requirement table (RuneTable_itemList) in System_table.lub to activate it

Example
Runetbl_info = {
	[RUNETAGIDTBL.EPISODE17] = {
		[RUNEIDTBL.Rp_Ep17_Melee] = {Rune_Res = "Rp_Ep17_Melee", Rune_ActiveList = 14},

rune_desc.lub | desc.lub

Runetbl_desc

Simple file to define the display name of Runes themself.

Example

	[RUNETAGIDTBL.EPISODE17] = {
		[RUNEIDTBL.Rp_Ep17_Melee] = {Rune_DisplayName = "Doubtful Components(Melee)"},

runeset_info.lub | set_info.lub

GradeTable

Table for upgrade success

GradeTable_Fail

Table for increase of success chance if upgrade fails

All values are called via RuneSet_UpGrade_Percentage_table and RuneSet_UpGrade_Percentage_table_Fail respectively,
value being the index of the table.
Format: [<Index>] = {<Chance_1>,...,<Chance_15>} (1)

GradeTable = {
	[1] = {10000, 10000, 10000, 9000, 9000, 8000, 7000, 6000, 5000, 4000, 3000, 2000, 1000, 500, 100},

GradeTable_Fail = {
	[1] = {4000, 4000, 4000, 3600, 3600, 3200, 2800, 2400, 2000, 1600, 1200, 800, 400, 200, 40},
  1. <Chance> : Value * 1000 (8% > 8 * 1000 = 8000)

RuneSettbl_info table

RuneSetRes

Texture file name

RuneSetActiveList

Value refers to item requirements to activate it, located in System_table.lub

RuneSet_SlotList

Values refers to RUNEIDTBL table and can have less values than 6, but that screws the slots

RuneSet_UpGradeList

Value refers to item requirements to upgrade (refine) it, located in System_table.lub

RuneSet_UpGrade_Percentage_table and RuneSet_UpGrade_Percentage_table_Fail

Both values refer to table index of GradeTable and GradeTable_Fail respectively, representing the success chance and the increase of the success chance in case the upgrade fails.

Example
	[RUNETAGIDTBL.EPISODE17] = {
		[RUNESETIDTBL.Rt_Ep17_Doubt] = {
			RuneSetRes = "Rt_Ep17_Doubt",
			RuneSetActiveList = 1,
			RuneSet_SlotList = {RUNEIDTBL.Rp_Ep17_Melee, RUNEIDTBL.Rp_Ep17_Range, 0, 0, RUNEIDTBL.Rp_Ep17_Magic, RUNEIDTBL.Rp_Ep17_Razor},
			RuneSet_UpGradeList = {45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59},
			RuneSet_UpGrade_Percentage_table = 1,
			RuneSet_UpGrade_Percentage_table_Fail = 1
		},

runeset_desc.lub | set_desc.lub

Runesystemtbl_tag table

Declares a tooltip when you move your mouse over the Tags.

RuneSettbl_desc table

Contains the description of set effects and the name of the Set

Display Name for Set

Will be split into set effects based on index value:

[2] = 2 set effects, each "", will be printed in a new line

Examples

Runesystemtbl_tag = {
	[RUNETAGIDTBL.EPISODE17] = "EP17",
}
	[RUNETAGIDTBL.EPISODE17] = {
		[RUNESETIDTBL.Rt_Ep17_Doubt] = {
			RuneSetDisplayName = "Doubtful Components",
			RuneSetDescription = {
				[2] = {"For each 3 Refine Levels:", "ATK +2, MATK +2."},
				[4] = {"Damage against", "monsters of every size +1%.", "ATK +10, MATK +10."}
			}
		},

runeset_reward.lub | set_reward.lub

The Rune Reward UI was implemented with 2024-10-16, adds new texture files as well as this file.
Up to 7 rewards can be received based on existing entries, I didn't test what happens if you have less values.

File Format

This is simple and uses Item IDs.

{ <Reward_1>, <Reward_2>, <Reward_3>, <Reward_4>, <Reward_5>, <Reward_6>, <Completion_Reward> }

Example
	[RUNETAGIDTBL.EPISODE17] = {
		[RUNESETIDTBL.Rt_Ep17_Doubt] = {103335, 1001282, 103339, 1001282, 0, 0, 103340},

itemDecom.lub | itemDecom.lub

This file controls the Disassembly part has 3 tables.
For this I will take a Step Card (ID: 4698) as example.

itemDecomItemNum_tbl table

Disassemble Amount to select from, you can have 2 values.

itemDecomType_tbl table

Defines the list of disassembled materials per <Type>

[<Type>] = {

Disassembled materials per entry (more entries means more possible materials)

{ <Item ID>, <Min Amount>, <Max Amount>, <Chance> }

ID of the material

Random value between these two values

100% = 100000, 25% = 25000 (so % * 1000; 10% = 10000)

itemDecom_tbl table

Simple list of items which can be disassembled

[<Item ID>] = {<Type1>,<Type2>}

ID which can be disassembled

Will be selected if you dismantle "1"

Will be selected if you dismantle "30"

Images


Example
itemDecomItemNum_tbl = { 1, 30 }

itemDecomType_tbl = {
	[1] = {
		{1001282, 1, 3, 100000}
	},
	[2] = {
		{1001282, 33, 99, 100000}, <--- This, since <Type1> was selected
		{1001283, 1, 1, 25000}
	},
}

itemDecom_tbl = {
	[4698] = {1, 2},
}

runesysteminfo.lub | systeminfo.lub

Even I'm not sure why this file exists.
It just calls the function GetDefultTag to define a default tag...
Same as the dofile line, the client reads it anyway.

dofile("systemen\\rune\\systemid.lub")
function GetDefultTag()
  return RUNETAGIDTBL.CHAPTER01
end