meta data for this page
  •  

📚 差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
index [2023/11/28 23:53] bibiboxsindex [2025/07/25 20:09] (当前版本) bibiboxs
行 1: 行 1:
 <markdown> <markdown>
-World/Main*+主页
  
-## Event+<video src="https://media.st.dl.eccdnx.com/steam/apps/257008115/movie480_vp9.webm" autoplay="autoplay" controls="controls" muted></video>
  
-### OnScriptLoad()+<br>
  
-> 当**世界端脚本**被完整加载后调用。 +## 公告
-+
-> 如果需要获取到一些初始化传递数据,可通过`SetGlobalVars() | GetGlobalVars()`以及`本地player.UserData`等方式来读写。+
  
 +[note2]
  
 +==**本页使用了[translate.js](http://translate.zvo.cn/ "translate.js")网页翻译方案,如果你希望使用其他翻译方式,请将语言切换为【简体中文】。**==
 +[/note]
  
-### OnScriptUnload()+> - **沙盘引擎 V1.0:计划于2025年以EA形式发布(更新迭代)** 
 +> - **抢先体验测试&开发资讯**:欢迎加入[《沙盘引擎》官方交流群](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=OR35HE4466TMtdZdeVqplxQRh4NOxoR8&authKey=vTPGzRrnZG5EnSKkXkFg8vCVTYpLzqUbhvXowQ6K5yZ5fZmX9EI0z1IO4BxExTId&noverify=0&group_code=798458058 "加入官方QQ群")获取更多详细内容!
  
-> 当脚本即将被释放时调用。+## 简介
  
 +🎉欢迎使用&游玩:**`Sandtable Engine · 沙盘引擎 · サンドボックスエンジン · Двигатель песочницы · 샌드박스 엔진 ...`**
  
 +沙盘引擎 是一款**==高效、轻量、免费的独立游戏程序==**,同时也是以**想象力**作为燃料的**创意引擎**。
  
-### OnFrameUpdate( deltaTime )+- 📦 基于CC协议的丰富资源库 
 +- 📜 基于`JavaScript`的轻量化脚本系统 
 +- 🌐 原生支持多人联机的世界架构 
 +- 🎨 内置可视化创作编辑器
  
-> 当世界端加载完成后每帧调用。 
  
-不应该将**过于复杂**的函数在此处执行,可能会影响服务器运算。 
  
-```javascript +*(您的Steam心愿单支持,是独立开发者们前行的明灯,如果可以,感谢您为我们照亮前路!)*
-function OnFrameUpdate( deltaTime:float ) //增量时间 +
-```+
  
 +<iframe src="https://store.steampowered.com/widget/926200/" frameborder="0" width="1280" height="190"></iframe>
  
  
-### OnThrowCastTrigger( tag, point) 
  
-> 当`ThrowCast`触发碰撞后调。 +### 户指引
-+
-> **此方法支持`return bool`(可选),这将影响一些Throw是否执行其自带绑定Action方法,事件返回值默认为`true`。** +
-+
-> 例如:`CreateThrowCast()`时在末尾参数绑定了一个`Action`,当ThrowCast发生碰撞后会优先调用当前事件,如果此处代码返回`false`则会阻止其**绑定Action**方法执行(如:默认RPG武器等,如果返回`false`将不会产生爆炸效果)。+
  
-```javascript +- **常规玩家**:即装即玩,无缝切换**单机&联机**玩法模式,探索更多玩法生态 
-function OnThrowCastTrigger( tag: string, point: Vector ): bool +- **玩法创作者**:低门槛开发,配合创意想法,简单至用**文本编辑器**即可定义游戏世界
-```+
  
-  
  
-### OnTimeChange( oldTime, newTime ) 
  
-> 当世界时间发生改变时调用。+### 简单理解
  
-```javascript ++ **沙盘引擎:**潜力丰富的游戏机 
-function OnTimeChange( oldTime, newTime ) ++ **游戏模组:**游戏机内的不同游戏 
-++ **脚本及代码:**基于`JavaScript`代码格式,定义游戏的规则 
-    DLog("OldTime:oldTime.Hour + "-" + oldTime.Minute); +**开始游戏:**1启动沙盘引擎 2选择想玩的模组 3享受不同模组的玩法
-    DLog("NewTime: " + newTime.Hour + "-" + newTime.Minute); +
-+
-```+
  
-  
  
-## Function 
  
-### Exec()+### 引擎特性
  
-一段脚本代码(Client\World脚本不互通+- **简单易用:**<font color=#FF9200>无需付费及注册,可用于**开发游戏**或**直接游玩游戏**</font> 
 +- **本地工作流:**<font color=#FF9200>常规运游戏或**打包、编译脚本**全部地完成</font> 
 +- **高度自定义:**<font color=#FF9200>包括但限于游戏菜单、UI界面、开放API脚本</font> 
 +- **轻量级脚本:**<font color=#FF5200>无需IDE及编辑工具,脚本可直接修改调试(`JavaScript`</font> 
 +- **开放的资源库:**<font color=#00CD15>内置数千个基础资源(角色、载具、建筑、模型、音乐等),支持自定义导入</font> 
 +- **丰富的API:**<font color=#FF0085>简单易用的代码封装,可以非常快速地搭建游戏Demo,仅需考虑游戏玩法逻辑</font> 
 +- **内置创作编辑器:**<font color=#FF0B00>支持在游戏内可视化创作世界地图,支持可视化修改多种世界对象实例</font> 
 +- **原生联机支持:**<font color=#00AAFF>创作模组原生支持**单机\联机**游戏,无需额外开发多人游戏代码</font> 
 +- **无限制商用:**<font color=#00AAFF>创作者制作的任何**衍生模组作品**,允许开发者无限制使用及商用</font>
  
-```javascript 
-function Exec( jsCode: string ) 
-``` 
  
  
 +### 已知限制
  
-### SetHostName()+  * **平台限制:**引擎目前**仅支持PC端**,未来可能支持移动端及其他平台
  
-> 设置主机房间名称(当主机房间被公开或查询时,单机游戏可以忽略)。 
-> 
-> **默认值:**`Sandtable Engine Server`。 
  
-```javascript 
-function SetHostName( name: string ) 
-``` 
  
-- **name:**主机房间名称文本(最大限制在64字符)。+### 了解更多
  
 +希望**深入了解**更多内容吗?邀请您查看[《基础手册——新手上路》](manual/getting-started),仅需几分钟即可更加清晰了解沙盘引擎!
  
  
-### GetHostName() 
  
-获取主机房间名称。+## 社区交流 
 +**有什么好的创意或者想法或希望获取最新的开发进程?非常欢迎找我们聊聊,让我们看到有人在关注!**
  
-```javascript +**我们很愿意聆听你对 沙盘引擎 的想法和建议 ,欢迎勾搭~**
-function GetHostName(): string +
-```+
  
 +- **E-Mail:**fantasyjoyed@163.com
 +- **QQGroup:**[798458058](https://qm.qq.com/q/uMHb8BlMgU "798458058")
 +- **Kook:**https://kook.top/o6Ggd1
 +- **Discord:**https://discord.gg/3xEq9awnxa
 +- **开发者名单:**https://sengine.mp-gamer.com/studio
  
  
-### SetHostInfo() 
  
-> 设置主机房间信息\公告(目前主要用于`TAB`面板封面部分介绍,以及有关房间的介绍信息等)。 +## 其他
-+
-> **默认值:`Mod Version: XXX`**。+
  
-```javascript +1. 标准版(免费版)可能有极少数功能上的限制
-function SetHostInfo( info: string ) +
-```+
  
-- **info:**主机房间信息\公告(最大限制在64字符)。 
  
  
  
-### GetHostInfo() 
  
-> 获取主机房间信息\公告。 
  
-```javascript 
-function GetHostInfo(): string 
-``` 
  
  
  
-### SetPassword() 
  
-> 设置主机房间密码(当主机房间被公开或查询时,单机游戏可以忽略)。 
  
-```javascript 
-function SetPassword( password: string ) 
-``` 
  
  
  
-### GetPassword() 
  
-> 获取主机房间密码。 
  
-```javascript 
-function GetPassword(): string 
-``` 
  
  
  
-### SetMaxPlayers() 
  
-> 设置主机房间最大人数(支持范围`1~100人`)。 
  
-```javascript 
-function SetMaxPlayers( num: int ) 
-``` 
  
- 
- 
-### GetMaxPlayers() 
- 
-> 获取主机房间最大玩家数。 
- 
-```javascript 
-function GetMaxPlayers(): int 
-``` 
- 
- 
- 
-### SetTime() 
- 
-> 设置当前游戏世界时间。 
-> 
-> **注意:每次加载新世界场景后,时间都将重新替换为【地图文件配置——默认时间】。** 
- 
-```javascript 
-function SetTime( hour: int, minute: int ) 
-``` 
- 
- 
- 
-### GetTime() 
- 
-> 获取游戏世界时间实例(`WorldTime`)。 
- 
-```javascript 
-let worldTime = GetTime(); 
-DLog("Hour: " + worldTime.Hour + ", Minute: " + worldTime.Minute); 
-``` 
- 
- 
- 
-### SetWeather() 
- 
-> 设置游戏世界天气,具体参考[天气ID](reference/instances)文档。 
-> 
-> **注意:每次加载新世界场景后,天气都将重新替换为【地图文件配置——随机天气(天气池)】。** 
- 
-```javascript 
-function SetWeather( weather: int ) 
-``` 
- 
- 
- 
-### GetWeather() 
- 
-> 获取游戏世界天气。 
- 
-```javascript 
-function GetWeather(): int 
-``` 
- 
- 
- 
-### GetRandomWeather() 
- 
-> 随机获取游戏世界天气,获取方式根据参数决定。 
- 
-```javascript 
-function GetRandomWeather( usePool: bool = true ): int 
-``` 
- 
-- `usePool`:是否使用【地图文件天气池】概率随机,否则是索引硬随机 
- 
- 
- 
-### SetGravity() 
- 
-> 设置游戏世界物理重力,分别为`横向X、纵向Y、前后Z`,默认为`Vector(0.0, -1.0, 0.0)`(正常下落的引力,且没有方向偏移)。 
- 
-```javascript 
-function SetGravity( space: Vector ) 
-``` 
- 
- 
- 
-### GetGravity() 
- 
-> 获取游戏世界物理重力。 
- 
-```javascript 
-function GetGravity(): Vector 
-``` 
- 
- 
- 
-### SetWorldColor() 
- 
-> 设置游戏世界叠加色调,默认为白色`Color(255, 255, 255)`。 
-> 
- 
-```javascript 
-function SetWorldColor( color: Color ) 
-``` 
- 
- 
- 
-### GetWorldColor() 
- 
-> 获取游戏世界叠加色调。 
- 
-```javascript 
-function GetWorldColor(): Color 
-``` 
- 
- 
- 
-### SetGameRule() 
- 
-> 设置指定游戏规则(不区分大小写),可用于修改更多细节内容,具体参考[游戏规则Keys](reference/instances)文档。 
-> 
-> 修改时请严格确保`Key > Value`类型正确,否则可能会引起异常。 
-> 
-> 此功能不仅可修改《沙盘引擎》内置规则,在有需要情况下,也可以作为自定义规则字典填充(前提:避开内置key值)。 
-> 
-> **注意:此选项设置的值只在当前世界生效,切换其他世界后将重置。** 
- 
-```javascript 
-function SetGameRule( key: string, value: any ) 
-``` 
- 
- 
- 
-### ResetGameRule() 
- 
-> 重置指定游戏规则默认数值。 
- 
-```javascript 
-function ResetGameRule( key: string ) 
-``` 
- 
- 
- 
-### ResetAllGameRules() 
- 
-> 重置所有游戏规则默认数值。 
- 
-```javascript 
-function ResetAllGameRules() 
-``` 
- 
- 
- 
-### GetGameRule() 
- 
-> 获取指定游戏规则数值(不区分大小写),具体参考[游戏规则Keys](reference/instances)文档。 
- 
-```javascript 
-function GetGameRule( key: string, defaultValue: any = null ) 
-``` 
- 
- 
- 
-### GetServerTickCount() 
- 
-> 获取世界脚本运行时间秒数(float)。 
- 
-```javascript 
-function GetServerTickCount(): float 
-``` 
- 
- 
- 
-### Message() 
- 
-> 给全服在线玩家发送一条公屏消息(在消息框中)。 
- 
-```javascript 
-function Message( text: string ) 
-``` 
- 
- 
- 
-### Announce() 
- 
-> 给全服在线玩家发送一条**公告\大文字**消息,具体类型样式参考[《世界资源实例汇总》](https://sengine.mp-gamer.com/reference/instances)。 
- 
-```javascript 
-function Announce( text: string, type: int = 0, time: float = 6 ) 
-``` 
- 
- 
- 
-### Subtitle() 
- 
-> 给全服在线玩家发送一条**底部字幕**消息。 
- 
-```javascript 
-function Subtitle( text: string ) 
-``` 
- 
- 
- 
-### RayTrace() 
- 
-> 生成一条**检测射线**,可用于检测**两点之间**实体对象的碰撞。 
-> 
-> 多数情况下,建议使用World端方法进行检测,而不是Client端方法。 
- 
-```javascript 
-function RayTrace( start: Vector, over: Vector, flags: int = 0 ): RayTraceResult 
-``` 
- 
--  `start`:起始点 
- 
--  `over`:结束点 
- 
--  `flags`:筛选layer层,默认为0,可用于筛选判断[实体类型层(位)](reference/instances) 
-- `RayTraceResult`:返回值([类型参考](scripting/native/main)) 
- 
-```javascript 
-//只判断Character + Vehicle 
-let result = RayTrace(Vector(0, 0, 0), Vector(10, 0, 10), 2 + 4); 
-DLog(result.IsHit); 
-DLog(result.Point); 
-DLog(result.Entity) 
-``` 
- 
- 
- 
-### CreateDamage() 
- 
-> 生成一处**范围原生伤害**,只有范围伤害的效果。 
- 
-```javascript 
-function CreateDamage( pos: Vector, damage: int, radius: float, from: Entity = null, damageType: int = 0, ignoreSelf = false ) 
-``` 
- 
-- `pos`:起始点 
- 
-- `damage`:伤害值 
-- `radius`:伤害产生范围 
- 
-- `from`:发起伤害单位(可空) 
-- `damageType`:[伤害类型](reference/instances) 
- 
-- `ignoreSelf`:是否忽略**发起伤害单位**自身(如`from`为空则没有意义) 
- 
- 
- 
-### CreateExplosion() 
- 
-> 在指定位置**生成一场爆炸**,不同爆炸类型有不同的效果范围和伤害。 
- 
-```javascript 
-function CreateExplosion( pos: Vector, type: int = 0 ) 
-``` 
- 
-| Type | 说明     | 
-| ---- | -------- | 
-| 0    | 小型爆炸 | 
-| 1    | 中型爆炸 | 
-| 2    | 大型爆炸 | 
- 
- 
- 
-### CreateExplosionForce() 
- 
-> 在指定位置生成一场**物理爆炸力(没有伤害)**,附近的物理刚体将受到力影响(类似爆炸冲击力)。 
- 
-```javascript 
-function CreateExplosionForce( pos: Vector, force: float, radius: float ) 
-``` 
- 
- 
- 
-### CreateRayPowerCast() 
- 
-> 在指定位置生成一条**光线射线(不会穿透物体)**,与射线检测功能基本相同,但会额外多出光线效果(例如:枪械弹道)。 
- 
-```javascript 
-function CreateRayPowerCast( start: Vector, over: Vector, color: Color, width: float = 0.2, time: float = 0.1 ) 
-``` 
- 
- 
- 
-### CreateThrowCast() 
- 
-> 在指定位置生成一条**投掷抛物射线(物理)**,与光线射线功能基本相同,但会额外多出物理效果。 
-> 
-> **注意:投掷射线将在发生碰撞后销毁,并触发【碰撞后事件】(Event优先级:`OnThrowCastTrigger() > BindAction()?`)** 
- 
-```javascript 
-function CreateThrowCast( start: Vector, direction: Vector, color: Color, width: float = 0.2, speed: float = 1.0, tag: string = "", action: Action<Vector> = null ) 
-``` 
- 
-```javascript 
-CreateThrowCast(Vector(0, 0, 0), Vector(0, 0, 1), Color(255, 0, 0), 0.2, 1, "test_throw", (point) => { 
-    DLog("Throw Over: " + point); 
-}); 
-``` 
- 
-- **start:**射线起点坐标 
-- **direction:**射线发射方向向量 
-- **color:**射线颜色 
-- **width:**射线宽度 
-- **speed:**投掷物理速度 
-- **tag:**标签,仅有识别作用,主要用于`OnThrowCastTrigger() `事件参数 
-- **action:**碰撞时触发方法(参数:`Vector`) 
- 
- 
- 
-### CreateModelThrowCast() 
- 
-> 在指定位置生成一条**包含模型的投掷抛物射线(物理)**,与`CreateThrowCast()`功能基本相同,但会额外多出子模型效果(例如射出的子弹、炮弹、弓箭、手榴弹模型等)。 
- 
-```javascript 
-function CreateModelThrowCast( model: int, localPos: Vector, localAngle: Vector, localScale: Vector, start: Vector, over: Vector, color: Color, width: float = 0.2, time: float = 0.1 ) 
-``` 
- 
-- **model:**子模型ID 
-- **localPos:**子模型的[本地]坐标 
-- **localAngle:**子模型的[本地]欧拉角度 
-- **localScale:**子模型的[本地]缩放 
-- *其他参数与`CreateThrowCast()`*相同 
- 
- 
- 
-### PlaySoundForAll() 
- 
-> 为所有当前在线的玩家播放一段2D音频。 
-> 
-> 注意:此操作相当于封装了**遍历player.PlaySound()**方法,播放的是客户端本地声音,后加入的玩家不会听到此声音。 
- 
-```javascript 
-function PlaySoundForAll( audioID: int, loop: bool = false, volume: float = 1f ) 
-``` 
- 
- 
- 
-### Play3DSoundForAll() 
- 
-> 为所有当前在线的玩家播放一段3D音频。 
-> 
-> 注意:此操作相当于封装了**遍历player.Play3DSound()**方法,播放的是客户端本地声音,后加入的玩家不会听到此声音。 
- 
-```javascript 
-function Play3DSoundForAll( audioID: int, pos: Vector, radius: float = 80, loop: bool = false, volume: float = 1f ) 
-``` 
- 
- 
- 
-### PlaySound() 
- 
-> 在服务器世界播放一段2D音频(与客户端音频方法相似,但播放的声音不受`Client\Audio`类控制,客户端也无法停止播放)。 
-> 
-> 即便稍后进入的玩家也会同步播放此声音(播放进度同步),音频实例将一直存在世界中,直到被(自动\手动)销毁。 
- 
-```javascript 
-function PlaySound( audioID: int, loop: bool = false, volume: float = 1f ): string //UUID 
-``` 
- 
- 
- 
-### Play3DSound() 
- 
-> 在服务器世界播放一段2D音频(此方法播放的声音不受`Client\Audio`类控制,客户端也无法停止播放)。 
-> 
-> 即使后进入的玩家也会同步播放此声音(播放进度同步),音频实例将一直存在世界中,直到被(自动\手动)销毁。 
- 
-```javascript 
-function Play3DSound( audioID: int, pos: Vector, radius: float, loop: bool = false, volume: float = 1f ): string //UUID 
-``` 
- 
- 
- 
-### StopSound() 
- 
-> 停止并销毁一个服务器世界声音实例。 
- 
-```javascript 
-function StopSound( uuid: string ): bool //返回false表示不存在UUID实例 
-``` 
- 
- 
- 
-### PauseSound() 
- 
-> 暂停播放一个服务器世界声音实例。 
-> 
-> 注意:此操作不会销毁实例,如果不使用时忘记销毁,可能会一直占用服务器资源。 
- 
-```javascript 
-function PauseSound( uuid: string ): bool //返回false表示不存在UUID实例 
-``` 
- 
- 
- 
-### ResumeSound() 
- 
-> 继续播放一个服务器世界声音实例。 
- 
-```javascript 
-function ResumeSound( uuid: string ): bool //返回false表示不存在UUID实例 
-``` 
- 
- 
- 
-### SetSoundWorld() 
- 
-> 设置一个**服务器世界声音实例**的网络世界(不同世界将无法听到声音)。 
- 
-```javascript 
-function SetSoundWorld( uuid: string, world: int ): bool //返回false表示不存在UUID实例 
-``` 
- 
- 
- 
-### BindKey() 
- 
-> 绑定一个**服务器按键**(当前场景有效),可用于监听**某个玩家的某键**被按下\抬起。 
-> 
-> 按键参数可填写**UnityEngine.KeyCode(Enum)**==索引或名称==作为按键参数。 
- 
-```javascript 
-function BindKey( keyTag: string, key1: string, key2: string = "None", key3: string = "None" ) 
-``` 
- 
-- `keyTag`:按键标签(用于识别) 
-- `key1`:按键1标准名称(如'H' 
-- `key2`:默认'None',否则表示组合键 
-- `key3`:默认'None',否则表示组合键 
- 
- 
- 
-### UnbindKey() 
- 
-> 取消绑定一个**服务器按键**,对其按键监听不再生效。 
- 
-```javascript 
-function UnbindKey( keyTag: string ) 
-``` 
- 
- 
- 
-### UnbindAllKey() 
- 
-> 取消绑定所有**服务器按键**,对其按键监听不再生效。 
- 
-```javascript 
-function UnbindAllKey() 
-``` 
- 
- 
- 
-### BindNativeKey() 
- 
-> 绑定一个**服务器监听原生公开按键**(当前场景有效),只可用于监听**某个玩家的某原生按键**被按下\抬起,**不会远程绑定任何原生公开按键**。 
-> 
-> 此功能需要客户端提前绑定了`BindNativeKey()`才有监听意义。 
- 
-```javascript 
-function BindNativeKey( keyTag: string ) 
-``` 
- 
-- `keyTag`:按键标签(用于识别) 
- 
- 
- 
-### UnbindNativeKey() 
- 
-> 取消绑定一个**服务器监听原生公开按键**,对其按键监听不再生效。 
- 
-```javascript 
-function UnbindNativeKey( keyTag: string ) 
-``` 
- 
- 
- 
-### UnbindAllNativeKey() 
- 
-> 取消绑定所有**服务器监听原生公开按键**,对其按键监听不再生效。 
- 
-```javascript 
-function UnbindAllNativeKey() 
-``` 
- 
- 
- 
-### WriteFile() 
- 
-> 写入一个文件到模组空间目录`Mod/Space`,安全起见,写入文件尺寸限制2MB,且有最大文件数量限制(`Space`目录最多可写【20】个文件)。 
-> 
-> 此功能通常用于实现**游戏\服务器存档、配置**等写入,建议使用JSON功能进行序列化。 
- 
-```javascript 
-function WriteFile( fileName: string, content: string ) 
-``` 
- 
- 
- 
-### ReadFile() 
- 
-> 从模组空间目录读取一个文件,如果文件不存在则返回空白文本。 
- 
-```javascript 
-function ReadFile( fileName: string ): string 
-``` 
- 
- 
- 
-### SetModArchive() 
- 
-> 设置并覆盖**当前模组**的持久化存储数据(字符串,可通过Json扩展,最长限制512字符)。 
-> 
-> 数据内容存储到`ModArchive.json`文件,**任意模组之间可相互获取,但只有当前模组可写入自身数据**。 
-> 
-> ==(出于安全考虑,此方法仅限World端使用,Client端是只读的)== 
- 
-```javascript 
-function SetModArchive( content: string ) 
-``` 
- 
- 
- 
-### GetModArchive() 
- 
-> 尝试读取**指定模组**的持久化存储数据(可通过`SetModArchive()`写入修改),如不存在则返回空文本。 
-> 
-> 注意:如果不填写参数,默认获取当前模组的数据。 
- 
-```javascript 
-function GetModArchive( package: string = null ): string 
-``` 
- 
- 
- 
-### SetSaveItem() 
- 
-> 设置并覆盖【存档数据槽(`Slot`)】指定`Key`的项目,并以最终Json的格式存储,仅支持基础类型(`string\number\bool...`)。 
-> 
-> 存档槽默认参数为`0`,如果只用于本地持久化数据存储,或者不需要多存档槽的设计,可以忽略`Slot`参数。 
-> 
-> **注意:此方法最多支持50个存档槽(文件),以及单文件最大1MB的写入空间。有关持久化存档相关内容,无论是单存档、多存档或其他使用场景,都可尝试此方案进行存储。** 
-> 
-> ==(出于安全考虑,此方法仅限World端使用,Client端是只读的)== 
- 
-```javascript 
-function SetSaveItem( key: string, value: object, slot: int = 0 ) 
-``` 
- 
-```javascript 
-SetSaveItem("gold", 1000, 0); //Save file to 'SaveData/SaveData_0.json' 
-SetSaveItem("playerlevel", 3, 5); //Save file to 'SaveData/SaveData_5.json' 
-``` 
- 
- 
- 
-### RemoveSaveItem() 
- 
-> 移除【存档数据槽(`Slot`)】指定`Key`的项目**(并非删除存档,而是删除存档中的一个项)**。 
-> 
-> ==(出于安全考虑,此方法仅限World端使用,Client端是只读的)== 
- 
-```javascript 
-function RemoveSaveItem( key: string, slot: int = 0 ) 
-``` 
- 
-```javascript 
-SetSaveItem("playerlevel", 3, 10); //Set level to 3 
-RemoveSaveItem("playerlevel", 10); //Remove 'playerlevel' item 
-``` 
- 
- 
- 
-### GetSaveItem() 
- 
-> 尝试读取【存档数据槽(`Slot`)】指定`Key`的项目内容,如不存在则返回`defaultValue`。 
- 
-```javascript 
-function GetSaveItem( key: string, slot: int = 0, defaultValue: any = null ): any 
-``` 
- 
-```javascript 
-SetSaveItem("gold", 1000); //Save file to 'SaveData/SaveData_0.json' 
-DLog("Your coin: " + GetSaveItem("gold")); 
-``` 
- 
- 
- 
-### ExistSaveItem() 
- 
-> 判断【存档数据槽(`Slot`)】指定`Key`的**项目内容是否为空(`bool`)**。 
- 
-```javascript 
-function ExistSaveItem( key: string, slot: int = 0 ): bool 
-``` 
- 
-```javascript 
-DLog(ExistSaveItem("gold")); 
-``` 
- 
- 
- 
-### ExistSaveData() 
- 
-> 判断【存档数据槽(`Slot`)】存档文件是否已被创建(`bool`)。 
- 
-```javascript 
-function ExistSaveData( slot: int = 0 ): bool 
-``` 
- 
- 
- 
-### DeleteSaveData() 
- 
-> 删除【存档数据槽(`Slot`)】存档文件,包括其文件内所有数据。 
-> 
-> ==(出于安全考虑,此方法仅限World端使用)== 
- 
-```javascript 
-function DeleteSaveData( slot: int = 0 ): bool 
-```