“Development Tutorial”的版本间的差异

来自部落与弯刀Wiki

(创建页面,内容为“==='''1. Concept of Loops'''=== 替代=|无|缩略图|554x554像素|游戏主循环逻辑图 As shown above, the core loop…”)
 
 
(未显示同一用户的33个中间版本)
第1行: 第1行:
 
==='''1. Concept of Loops'''===
 
==='''1. Concept of Loops'''===
[[文件:游戏主循环逻辑图.jpg|替代=|无|缩略图|554x554像素|游戏主循环逻辑图]]
+
[[文件:The flow chart of the major looping logics in Sands of Salzaar.png|无|缩略图|800x800px|The flow chart of the major looping logics in Sands of Salzaar]]
  
 
As  shown above, the core loop of the game is “Trigger + Event”.
 
As  shown above, the core loop of the game is “Trigger + Event”.
第10行: 第10行:
 
In an event, all relevant directives will be executed entirely by order-one after another. You can define a conditional jump-to statement at the end of the loop, which allows the event to jump to different results.
 
In an event, all relevant directives will be executed entirely by order-one after another. You can define a conditional jump-to statement at the end of the loop, which allows the event to jump to different results.
  
[[文件:处理事件流程.jpg|替代=|无|缩略图|处理事件流程]]
+
[[文件:The flow chart of executing an event.png|无|缩略图|600x600px|The flow chart of executing an event]]
 
<br />
 
<br />
 
  
 
==='''2. Project Configuration'''===
 
==='''2. Project Configuration'''===
第77行: 第76行:
  
 
2: Sandbox Scene. You need to customize the main character  
 
2: Sandbox Scene. You need to customize the main character  
 
 
 
  
 
(only available when the parameter type is “Story”)
 
(only available when the parameter type is “Story”)
 
|-
 
|-
 
|include_main_game
 
|include_main_game
|
+
|Yes
 
|Story
 
|Story
|是否引用部落与弯刀主工程资源,仅Story模式使用。
+
|Decide whether you want to use the resources in the main project of the game (only available when the parameter type is “Story”)
  
0为不引用任何数据
+
0: do not use any data
  
1为引用部落与弯刀完整数据(默认)
+
1: use all data of Sands of Salzaar(default)
  
2为仅引用基础数据(做独立story推荐)
+
2: only use basic data(recommended for independent story) 
 
<br />
 
<br />
 
|-
 
|-
 
|homepage_background
 
|homepage_background
|
+
|Yes
 
|Story
 
|Story
|主菜单背景替换,要求填写图片资源全路径。仅Story模式有效
+
|Change the background image on the main menu. The full file path of the image is required. This is only available in a scenario MODs.
 
|-
 
|-
 
|audioControllerAdditional
 
|audioControllerAdditional
|
+
|Yes
 
|Plugin/Story
 
|Plugin/Story
|仅限专业级项目可用
+
|This is only available in the Professional MOD project.
  
音频中间件全路径(请参考具体例子,可为空)
+
Full path of the audio middleware is required. (please refer to the example; the parameter can be left empty).
 
|}
 
|}
  
  
'''配置表引用文件 valuebundle/default.xml'''
 
  
 +
'''Reference File of Configuration Table: valuebundle/default.xml'''
  
格式为xml,可以包含多个include元素
+
The file format is .xml, and the file can include multiple referenced Excel files.
 
{| class="wikitable"
 
{| class="wikitable"
|参数
+
|Parameter
|是否可为空
+
|Allow Empty Parameter
|描述
+
|Description
 
|-
 
|-
 
|file
 
|file
|
+
|No
|本MOD需要包含的配置表文件名,此文件位于本Mod工程的Excel目录下。需要包含扩展名。
+
|The names of the configuration tables of your MOD. This file is located in the Excel directory of this MOD project. filename extension is required.
|-
 
|
 
|
 
|
 
 
|}  
 
|}  
  
'''配置表规则映射文件 valuebundle/INDEX.xml'''
 
  
格式为xml,可以包含多个convert元素
+
 
 +
'''Mapping-Rule File of Configuration Table: valuebundle/INDEX.xml'''
 +
 
 +
The file format is .xml, and the file can convert multiple referenced Excel files.
 
{| class="wikitable"
 
{| class="wikitable"
|参数
+
|Parameter
|是否可为空
+
|Allow Empty Parameter
|描述
+
|Description
 
|-
 
|-
 
|reg
 
|reg
|
+
|No
|对应映射规则reg文件,位于data/regV2下
+
|Corresponds to the file of mapping rules, located under directory data/regV2
 
|-
 
|-
 
|from
 
|from
|
+
|No
|本MOD需要包含的配置表文件名,此文件位于本Mod工程的Excel目录下。需要包含扩展名。
+
|The names of the configuration tables of your MOD. This file is located in the Excel directory of this MOD project. Filename extension is required.
 
|}  
 
|}  
  
'''资源路径映射文件 Interface/overrides.txt'''
 
  
格式为普通文本文件,每行一个映射规则
 
  
具体写法见5.4资源管理。
+
'''Mapping File of Resource Path: Interface/overrides.txt'''
  
==='''三、配置表'''===
+
The file is a common text file, one mapping rule per line.
  
===='''1、配置表原理概述'''====
+
Please refer to 5.4 Resource Management for more details.
 
+
<br />
 
 
《部落与弯刀》中,使用配置表来进行内容的填写。配置表中可以是各项数值设定、公式的配置,剧情和各种跳转逻辑的编写,或者资源引用路径的配置。
 
 
 
 
 
配置表是一些独立的excel文件,通过HSFramework提供的工具打包成xml或可执行的二进制文件(values文件)。具体流程为:
 
[[文件:配置表打包流程.jpg|替代=|无|缩略图|554x554像素|配置表打包流程]]
 
 
 
 
 
'''如上图,开发流程为:'''
 
 
 
1、MOD开发者修改配置表(excel)
 
 
 
(1) 注:reg为我们默认提供的excel语法约束文件,MOD开发者不需要修改
 
  
2、运行打包工具生成可执行文件(values)
+
==='''3. Configuration Table'''===
  
3、启动游戏客户端对mod包进行调试
+
===='''3.1 Basic Principles of Config Tables'''====
  
 +
In Sands of Salzaar, we use the configuration tables to fill in contents. In these tables, you can set different values, configure formulas, write a story, design a logic jump, or configure the paths of resources that are referred to.
  
'''请特别注意:'''
+
Configuration tables are independent excel files, which can be packed up as xml files or executable binary files (values files) with the help of the tools in the HSFramework.
 +
[[文件:The flow chart of packing configuration files.png|无|缩略图|1000x1000px|The flow chart of packing configuration files]]
  
1、修改配置表推荐使用wps工具;
+
'''As the flow chart has shown above, the process of development is:'''
  
2、配置表中各项数据有自己的语法和格式要求,一旦输入出错,很可能在上图的2(打包)或3(运行)环节出错。请注意报错信息;
+
· MOD developer edits their configuration tables (excel)
  
3、Excel中请不要留无意义的空行空列,可能会导致未知错误;
+
Note: the reg file is our default syntax restriction files of Excel. MOD developer does not need to edit it.
  
4、不建议大量修改然后一次性测试,否则很难定位问题所在。建议少量修改后随即测试,方便第一时间排查解决问题;
+
· Run the packing tools to generate executable files (values).
  
5、由于玩家存档会依赖于配置表中的定义,所以'''不要'''对配置表中指定ID进行删除,这样导致的结果会是使用本MOD的玩家,既有存档可能会损坏(因为找不到这个被删除的ID了)。正确的做法是将老的数据标记为过期,新建一行作为新的ID来定义;
+
· Run the game client to debug the MOD package.
<br />
 
  
===='''2、数据类型'''====
 
数据类型设置具体excel的一行中,我们可以填入的数据格式。
 
  
这个格式在reg文件中定义(参考样例工程的data/regV2下的各个文件中type的定义)
+
'''Please pay special attention:'''
  
 +
· Microsoft Excel is recommended for editing configuration tables;
  
常用的格式如下
+
· Each data has its own restriction for syntax and format. If the input is wrong, you will probably encounter errors in the second (pack) or the third (run) stage. Please pay attention to the error information;
  
 +
· Do not leave empty rows amid the Excel tables for no reason. Otherwise, it might cause unknown errors;
  
int 整数
+
· We do not suggest you make a high number of changes and then debug them all at once, which makes it hard to locate the roots of errors. Therefore, we recommend you to start debugging after making a few changes. It is easier to identify and fix issues this way.
  
float 浮点数(小数)
+
· As players’ saves depend on the definitions in the configuration tables, please DO NOT delete specific IDs in the tables. If the IDs are deleted, players who are using the relevant MODs might have their saves corrupted (since the deleted IDs cannot be found). The correct way is to mark the old data as “obsolete” and start a new line to define a new ID.
  
string 字符串
+
===='''3.2 Data Type'''====
  
 +
Data type refers to the format of the data we write in a specific line in an Excel file.
  
如果在excel中填写出错,则打包时会报错。
+
This format is defined in the reg file (please see the sample project, and refer to the definitions of types of different files under the path data/regV2).
  
===='''3、变量和条件表达式'''====
 
'''特别注意:脚本编辑时注意所有特殊符号必须为半角!!!'''
 
  
 +
Common formats are as follow:
  
条件表达式组由多个形如" [%condition%][=]1"这样的条件表达式组成,以符号"|"(或) 或 符号”&”(与)进行连接,”&”(与)的优先级大于"|"(或)的优先级,当条件表达式左右值均为整数字符时,将返回其数值大小的比较结果,否则只能执行字符串比较切仅支持[=]和[<>]两种判定。
+
int—integer
  
例如: [%result_code%][=]1| [%player_money%][>=]100 表示当结果为1或玩家身上有100金钱时执行
+
float—floating point(decimal point)
  
而 [%player:level%][>=]3& [%player_money%][>]100 表示玩家等级大于等于3并且身上的金钱大于100时执行
+
string—character string
  
  
注:由于历史原因,目前游戏实际excel填写中,[%xxxx%]和[$xxxx$]没有区别,都可以使用。
+
If there are format errors in the Excel file, you will encounter an error report when packing.
  
 +
===='''3.3 Variables and Conditional Expressions'''====
 +
'''Please pay special attention: when editing scripts, you must use halfwidth (aka common English) punctuations!!!'''
  
条件表达式可以参考各个 XXX触发器.xls 中的相关配置。
+
A conditional expression group consists of multiple conditional expressions like " [%condition%] [=]1", connected by symbols such as “|” (or) and “&” (and). “&” (and) has a higher priority than “|” (or). When both sides of a conditional expression are integers, a comparison between them will be returned as a result by default. Otherwise, we have to use character strings to make the comparison, and this method only supports the use of [=] and [<>].
  
===='''4、事件指令语法'''====
+
E.g. “[%result_code%][=]1| [%player_money%][>=]100” means that directives will be executed when the result is “1” or the player has 100 coins, while “[%player:level%][>=]3&  [%player_money%][>]100” means that directives will be executed when the player is at least Lv.3 and has more than 100 coins.
'''特别注意:脚本编辑时注意所有特殊符号必须为半角!!!'''
 
  
 +
Note: Due to a historical reason, both [%xxxx%] and [$xxxx$] can be used in the configuration in Excel.
  
指令和参数使用*分割,参数之间一般使用#分割。由于对话指令大量被使用,我们在编写时允许省去对话指令的填写。
+
Regarding conditional expressions, you can refer to the configurations in different kinds of trigger.xls.
  
 +
===='''3.4 Event Directive Syntax'''====
 +
'''Please pay special attention: when editing scripts, you must use half-size punctuation!!!'''
  
在默认调用事件时,会传入当前的一些环境变量。开发者可以使用诸如CUR_ROLE、[%tagrole%]等写法来使用变量。
+
We use “*” to separate directives and parameters and “#” for separations between parameters. Since a high amount of chat directives are being used, we are allowed to disregard chat directives when coding.
  
 +
When transferring an event by default, certain environment variables will be imported. Developers can adopt different coding methods such as CUR_ROLE and [%tagrole%] to use the variables.
  
具体指令请参考附录:全指令说明
+
For detailed directives, please refer to the appendix—Directive Instruction
  
===='''5、其他配置表隐含语法'''====
+
===='''3.5 Other Hidden Syntax of Config Tables'''====
一些配置表中会有自己的隐含语法,如果填写不对,在打包时不一定报错,但在运行游戏时会有相关错误。具体请参考我们的各种样例excel来进行填写。
+
Some configuration tables have their hidden syntax. If you fill in the wrong syntax content, there might not be an error report when packing, but errors will occur when you run the game. Please refer to our different sample Excel files when filling in the tables. 
 
<br />
 
<br />
  
===='''6、MOD的配置表工作原理'''====
+
===='''3.6 Principles of MOD Config Tables'''====
各个excel中都包含自己的ID,如果有重复的ID,则后加载的MOD会覆盖之前的。这样也就为MOD修改游戏有了可能,例如标准游戏中《C初始设定表.xls》中定义了
+
Every Excel file has its ID. If there are repeated IDs, the newly loaded MOD will override the previous one. Thus, it is possible to use MODs to change the game. For example, we can look at a definition in C Initial Setting Table.xls of the standard game.
 
 
 
 
“init_pos”为红石城外峡谷出生点:980,-1246
 
 
 
 
 
则可以在MOD中添加一个初始设定表,重写“init_pos”这个KEY,就可以实现修改游戏初始出生位置的功能。
 
 
 
==='''四、资源管理'''===
 
 
 
===='''1、MOD资源管理概述'''====
 
资源指游戏中使用到的图片、音乐、模型、动作、特效等等。
 
  
《部落与弯刀》游戏使用全局统一的资源命名空间,每一个资源对应唯一的全路径。你可以在MOD中定义资源的“重写规则”,从而实现替换或者新增资源的功能。
+
“init_pos” is the respawning point in the wild rift outside Redstone Keep: 980, -1246
  
 +
You can create an initial setting table in your MOD to rewrite the key string “init_pos”, which changes the game’s initial respawning point .
  
你可以在Interface/overrides.txt定义这个重写规则
 
  
 +
==='''4. Resource Management'''===
  
比如ABS\Audio\*>:\Buildsource\Audios\* 代表的是本MOD下的ABS\Audios目录下的所有内容,覆盖或添加到原BuildSource\Audios下所有内容(如果原来有相同文件则覆盖,否则新增)
+
===='''4.1 Overview on MOD Resource Management'''====
 +
Resources refer to the images, audios, models, animations, special effects, and other content we might be using in the game.
  
 +
Sands of Salzaar uses a global namespace for resources. Each resource corresponds to a unique fall path. You can define the “rewriting rules” of resources in your MOD to change the old resource or add a new one.
  
你可以在这里定义重写ABS或RES下的具体规则,支持通配符(如*代表所有),也支持具体指定文件。
+
You can define the rewriting rules in Interface/overrides.txt.
  
 +
For example, “ABS\Audio\*>:\Buildsource\Audios\* ” represents all content that was originally in the directory ABS\Audios and was later added to BuildSource\Audio (or has overwritten the original content in BuildSource\Audio).
  
现有部落与弯刀的资源集合请参考全资源对照表。
+
You can define or rewrite the specific rules under ABS or RES in this text file. Specific file reference, as well as Wildcard characters, is supported (for example, “*” represents “all”).
  
===='''2、通过标准文件系统导入RES资源'''====
+
For the current collection of resources in Sands of Salzaar, please refer to the Comparison Table of All Resources.
默认RES下所有的文件都将在生成MOD时拷贝到发布目录,在简易MOD工程和专业级MOD工程下,都会生效。
 
  
===='''3、在Unity下导入ABS资源'''====
+
===='''4.2 Import RES Resource via Standard File System'''====
默认ABS下每个目录都会被打包成一个单独的assetbundle包,
+
All files under RES will be copied to the default game-release directory of Steam when the MOD is created. It works in both Simple MOD projects and Professional MOD projects.
  
只有在专业级MOD工程,在unity下启动打包MOD才可以生效。
+
===='''4.3 Import ABS Resource in Unity'''====
 +
Every directory under ABS will be packed into a single assetbundle by default. This is only possible with a Professional MOD project, and you need to use Unity to build the MOD.
  
=== '''五、音频管理''' ===
 
待编写
 
  
==='''六、捏脸工具'''===
+
=== '''5. Audio Management''' ===
你可以使用部落与弯刀的捏脸素材对NPC的外貌进行修改,在MOD编辑器-捏脸工具中可以进行自有组合捏脸。
+
Please wait for more updates.
[[文件:捏脸工具启动位置示意.png|无|缩略图|641x641px|捏脸工具启动位置示意]]
 
  
 +
==='''6. Face Editor'''===
 +
You can use the face editing materials in the game to change the appearance of NPCs. In Sands of Salzaar Mod Editor-Face Editor, you can do face editing with the current materials.
 +
[[文件:The location of the Face Editor.png|无|缩略图|1200x1200px|The location of the Face Editor]]
  
捏脸的内部数据位于此:
+
The location of the Face Editor
[[文件:捏脸工具导出示意.png|无|缩略图|641x641像素|捏脸工具导出示意]]
 
  
 +
Internal data of face editing is here:
 +
[[文件:Export of face editing data.png|无|缩略图|1200x1200px|Export of face editing data]]
  
在此文本框编辑后,点击导入可以查看其他的捏脸。
+
In the highlighted textbox, click “import” to view other appearances.
 +
After you finish face editing, you can copy and paste this data (as character appearance information) to the corresponding configuration table.
  
捏脸后复制此段代码,即可作为角色的外貌信息导出粘贴到对应的配置表中。
+
==='''7. Skill Editing'''===
==='''七、技能编辑'''===
+
You can edit the Skill Configuration table and rewrite Assets/BuildSource/SkillData/*.txt to realize skill editing. For detailed rules, please refer to Directive Instruction—Skill Directive Editing.
技能通过修改技能配置表以及重写 Assets/BuildSource/SkillData/*.txt 实现,具体规则请见《全指令说明-技能命令编辑说明》
 
  
可以通过技能编辑器进行实时编辑和调试
+
You can do real-time editing and debugging in the Skill Editor.
  
==='''八、3D模型和动作'''===
+
==='''8. 3D Model and Animation'''===
待支持,需要专业级MOD工程
+
Function not supported now. Professional MOD project needed.
  
==='''九、粒子特效'''===
+
==='''9. Particle Effect'''===
待支持,需要专业级MOD工程
+
Function not supported now. Professional MOD project needed.
  
==='''十、地图编辑器'''===
+
==='''10. Map Editor'''===
待编写
+
Please wait for more updates.

2020年9月22日 (二) 01:49的最新版本

1. Concept of Loops

The flow chart of the major looping logics in Sands of Salzaar

As shown above, the core loop of the game is “Trigger + Event”.

Trigger is a collection of specific conditions, and event is a collection of directives to be executed.

As players continuously participate in different events, the in-game time elapses. Some events happen at certain moments, and then a set of directives will be carried out—this is the major looping logic of the game.

In an event, all relevant directives will be executed entirely by order-one after another. You can define a conditional jump-to statement at the end of the loop, which allows the event to jump to different results.

The flow chart of executing an event


2. Project Configuration

Standard Project Configuration File: Config/default.json

After configuration, files in .json format will be created, and the key parameters are shown below.

In the following diagram, if the “Valid Range” is Story (type=Story), then the parameter can only be used in scenario MODs.

Parameter Allow Empty Parameter Valid Range Description
type No Plugin/Story MOD Type, Plugin, Scenario
name No Plugin/Story MOD Name
desc Yes Plugin/Story MOD Description
tags Yes Plugin/Story The label that describes the game genre shown to players on Steam. If there are multiple labels, please use a half-size semicolon—”;:” and type English characters only.

Scenarios

Maps

Items

Characters

Skills

Appearance

BattleUnits

Rules

Audios

Cheating

start_scene Yes Story The beginning scene (face editing by default); optional:

0: CG of Sands of Salzaar

1: Character Creation(default option if there is no parameter)

2: Sandbox Scene. You need to customize the main character

(only available when the parameter type is “Story”)

include_main_game Yes Story Decide whether you want to use the resources in the main project of the game (only available when the parameter type is “Story”)

0: do not use any data

1: use all data of Sands of Salzaar(default)

2: only use basic data(recommended for independent story) 

homepage_background Yes Story Change the background image on the main menu. The full file path of the image is required. This is only available in a scenario MODs.
audioControllerAdditional Yes Plugin/Story This is only available in the Professional MOD project.

Full path of the audio middleware is required. (please refer to the example; the parameter can be left empty).


Reference File of Configuration Table: valuebundle/default.xml

The file format is .xml, and the file can include multiple referenced Excel files.

Parameter Allow Empty Parameter Description
file No The names of the configuration tables of your MOD. This file is located in the Excel directory of this MOD project. filename extension is required.


Mapping-Rule File of Configuration Table: valuebundle/INDEX.xml

The file format is .xml, and the file can convert multiple referenced Excel files.

Parameter Allow Empty Parameter Description
reg No Corresponds to the file of mapping rules, located under directory data/regV2
from No The names of the configuration tables of your MOD. This file is located in the Excel directory of this MOD project. Filename extension is required.


Mapping File of Resource Path: Interface/overrides.txt

The file is a common text file, one mapping rule per line.

Please refer to 5.4 Resource Management for more details.

3. Configuration Table

3.1 Basic Principles of Config Tables

In Sands of Salzaar, we use the configuration tables to fill in contents. In these tables, you can set different values, configure formulas, write a story, design a logic jump, or configure the paths of resources that are referred to.

Configuration tables are independent excel files, which can be packed up as xml files or executable binary files (values files) with the help of the tools in the HSFramework.

The flow chart of packing configuration files

As the flow chart has shown above, the process of development is:

· MOD developer edits their configuration tables (excel)

Note: the reg file is our default syntax restriction files of Excel. MOD developer does not need to edit it.

· Run the packing tools to generate executable files (values).

· Run the game client to debug the MOD package.


Please pay special attention:

· Microsoft Excel is recommended for editing configuration tables;

· Each data has its own restriction for syntax and format. If the input is wrong, you will probably encounter errors in the second (pack) or the third (run) stage. Please pay attention to the error information;

· Do not leave empty rows amid the Excel tables for no reason. Otherwise, it might cause unknown errors;

· We do not suggest you make a high number of changes and then debug them all at once, which makes it hard to locate the roots of errors. Therefore, we recommend you to start debugging after making a few changes. It is easier to identify and fix issues this way.

· As players’ saves depend on the definitions in the configuration tables, please DO NOT delete specific IDs in the tables. If the IDs are deleted, players who are using the relevant MODs might have their saves corrupted (since the deleted IDs cannot be found). The correct way is to mark the old data as “obsolete” and start a new line to define a new ID.

3.2 Data Type

Data type refers to the format of the data we write in a specific line in an Excel file.

This format is defined in the reg file (please see the sample project, and refer to the definitions of types of different files under the path data/regV2).


Common formats are as follow:

int—integer

float—floating point(decimal point)

string—character string


If there are format errors in the Excel file, you will encounter an error report when packing.

3.3 Variables and Conditional Expressions

Please pay special attention: when editing scripts, you must use halfwidth (aka common English) punctuations!!!

A conditional expression group consists of multiple conditional expressions like " [%condition%] [=]1", connected by symbols such as “|” (or) and “&” (and). “&” (and) has a higher priority than “|” (or). When both sides of a conditional expression are integers, a comparison between them will be returned as a result by default. Otherwise, we have to use character strings to make the comparison, and this method only supports the use of [=] and [<>].

E.g. “[%result_code%][=]1| [%player_money%][>=]100” means that directives will be executed when the result is “1” or the player has 100 coins, while “[%player:level%][>=]3& [%player_money%][>]100” means that directives will be executed when the player is at least Lv.3 and has more than 100 coins.

Note: Due to a historical reason, both [%xxxx%] and [$xxxx$] can be used in the configuration in Excel.

Regarding conditional expressions, you can refer to the configurations in different kinds of trigger.xls.

3.4 Event Directive Syntax

Please pay special attention: when editing scripts, you must use half-size punctuation!!!

We use “*” to separate directives and parameters and “#” for separations between parameters. Since a high amount of chat directives are being used, we are allowed to disregard chat directives when coding.

When transferring an event by default, certain environment variables will be imported. Developers can adopt different coding methods such as CUR_ROLE and [%tagrole%] to use the variables.

For detailed directives, please refer to the appendix—Directive Instruction

3.5 Other Hidden Syntax of Config Tables

Some configuration tables have their hidden syntax. If you fill in the wrong syntax content, there might not be an error report when packing, but errors will occur when you run the game. Please refer to our different sample Excel files when filling in the tables. 

3.6 Principles of MOD Config Tables

Every Excel file has its ID. If there are repeated IDs, the newly loaded MOD will override the previous one. Thus, it is possible to use MODs to change the game. For example, we can look at a definition in C Initial Setting Table.xls of the standard game.

“init_pos” is the respawning point in the wild rift outside Redstone Keep: 980, -1246

You can create an initial setting table in your MOD to rewrite the key string “init_pos”, which changes the game’s initial respawning point .


4. Resource Management

4.1 Overview on MOD Resource Management

Resources refer to the images, audios, models, animations, special effects, and other content we might be using in the game.

Sands of Salzaar uses a global namespace for resources. Each resource corresponds to a unique fall path. You can define the “rewriting rules” of resources in your MOD to change the old resource or add a new one.

You can define the rewriting rules in Interface/overrides.txt.

For example, “ABS\Audio\*>:\Buildsource\Audios\* ” represents all content that was originally in the directory ABS\Audios and was later added to BuildSource\Audio (or has overwritten the original content in BuildSource\Audio).

You can define or rewrite the specific rules under ABS or RES in this text file. Specific file reference, as well as Wildcard characters, is supported (for example, “*” represents “all”).

For the current collection of resources in Sands of Salzaar, please refer to the Comparison Table of All Resources.

4.2 Import RES Resource via Standard File System

All files under RES will be copied to the default game-release directory of Steam when the MOD is created. It works in both Simple MOD projects and Professional MOD projects.

4.3 Import ABS Resource in Unity

Every directory under ABS will be packed into a single assetbundle by default. This is only possible with a Professional MOD project, and you need to use Unity to build the MOD.


5. Audio Management

Please wait for more updates.

6. Face Editor

You can use the face editing materials in the game to change the appearance of NPCs. In Sands of Salzaar Mod Editor-Face Editor, you can do face editing with the current materials.

The location of the Face Editor

The location of the Face Editor

Internal data of face editing is here:

Export of face editing data

In the highlighted textbox, click “import” to view other appearances. After you finish face editing, you can copy and paste this data (as character appearance information) to the corresponding configuration table.

7. Skill Editing

You can edit the Skill Configuration table and rewrite Assets/BuildSource/SkillData/*.txt to realize skill editing. For detailed rules, please refer to Directive Instruction—Skill Directive Editing.

You can do real-time editing and debugging in the Skill Editor.

8. 3D Model and Animation

Function not supported now. Professional MOD project needed.

9. Particle Effect

Function not supported now. Professional MOD project needed.

10. Map Editor

Please wait for more updates.