> For the complete documentation index, see [llms.txt](https://ankangpig.gitbook.io/crtwiki/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ankangpig.gitbook.io/crtwiki/getting_started.md).

# 脚本入门

[英文wiki](https://docs.blamejared.com/1.12/en/Getting_Started)

CraftTweaker 使用一种称为 `ZenScript` 的自定义脚本语言。ZenScript 读取于 `<游戏主目录>/scripts` 文件夹下的所有带有 `.zs` 后缀的文件。

ZenScript 是一种按“自上向下”顺序读取的脚本语言，这意味着`导入`应该位于文件的顶部，`变量声明`也应该出现在较靠近文件顶部的位置。当然这不是强制性的，`变量`虽能够在脚本的各处定义，但`变量`声明之前的所有行都无法访问这个变量。

## 介绍

你有过这样的经历吗？你做了一个整合包，却发现自己只是堆砌了一堆模组，却并没有带来任何综合性的体验？ 模组的制作都是相对独立的，相比起别的模组，总是有几个显得过于 OP。 也许你认为一些物品有更好的配方， 也许你渴望在不移除整个模组的情况下，仅仅删除其中的一个物品， 也许你发现一些矿物词典条目包含过多或过少的物品…… 现在你可以全部做到——只需要一条 MineTweaker 指令。

除了支持原版 Minecraft 的主要功能之外，CraftTweaker 也提供了兼容其他模组的库，允许你进一步自定义其他模组相关的机器配方或者修改其他模组的一些行为。

脚本被存放在`<游戏主目录>/scripts` 文件夹，并在游戏的`预加载(PreInitialization)`阶段加载。不同于先前版本的 CraftTweaker，脚本无法被重新加载。这是因为 Mojang 对 1.12 版本的改动，目前仍无解决方案。 最后，脚本需要**同时在服务端和客户端上**才能启用。

所有以 `.zs` 为后缀的脚本文件可以被压缩为 `.zip` 文件，且压缩后仍旧能够正常读取。

### 书写你的第一个脚本

如果你想开始书写一个脚本，你需要创建一个非常基本的脚本文件，这个文件可以起名叫做 `hello.zs`，并放置在 `<游戏主目录>/scripts` 文件夹下。

在 `hello.zs` 文件中写入以下内容：

```
print("Hello,world!");
```

接着启动 Minecraft 并查看 `crafttweaker.log` 文件。

`crafttweaker.log` 文件位于 `<游戏主目录>` 下，它能够被任何读取文本文档的软件打开。

这里推荐使用 Notepad++ 或者 Sublime Text 来编辑脚本文件，当然别的程序也可以。

### crafttweaker.log 文件

`crafttweaker.log` 文件的输出会使用一种特殊的语法，基本的语法结构如下：

```
[Forge 加载阶段（LOADERSTAGE）][端（SIDE）][类型（TYPE）] <信息>
```

这个语法用于调试，也只有命令的输出信息不使用此语法，在这种情况下，它只是打印消息，这样做能够更容易的复制粘贴输出信息。

### 注释

注释可以用来使你的脚本文件更易于阅读，更容易理解!

ZenScript 支持三种不同的注释书写方法，它们分别是：

单行注释： `// 我是一条单行注释！`

另一种单行注释： `# 我也是一条单行注释！`

多行注释：

```
/* 我是 
一条 
多行注释！ */
```
