开始
THS 简易语言
面向零基础,用简单脚本就能做出游戏模组
什么是 THS?
THS 是一种简单的脚本语言,专门为 Theseus 游戏设计。你不需要学习 Java 就能用 THS 做出自己的模组。
THS 能做什么:
- 给画面加滤镜效果(花屏、黑白、暗角)
- 自定义连击显示
- 调整判定宽容度
- 在音符判定时放特效
- 检测特定的游戏事件并触发效果
快速开始
1. 创建文件
在游戏目录的 mods 文件夹中,创建一个以 .ths 结尾的文件。
2. 写模板
text
# 这是我的第一个 THS 模组
name "我的第一个模组"
id "my_first_mod"
author "你的名字"
version "1.0"3. 添加效果
text
# 启用花屏滤镜
set_filter "glitch" {
intensity = 0.5
speed = 1.0
}4. 在游戏里启用
- 启动游戏,进入主菜单的"模组管理"
- 找到你的模组,启用它
- 进入游玩,效果就出现了
在线体验
不用启动游戏,直接在下面试玩 THS。选择一个预设示例,修改脚本里的参数,点击"运行",右侧的模拟游玩画面会实时展示脚本效果。想改哪里就改哪里,改坏了点"重置"再来。
实时预览实时预览:选择预设示例,修改脚本,运行即可看到滤镜 / HUD / 特效 / 触发器效果
预览加载中…
语法
注释
text
# 这是一行注释元信息
text
name "模组名"
id "模组标识"
author "作者"
version "1.0"模板配置
text
set_filter "模板名" {
参数名 = 值
}不同模板关键字:
set_filter- 滤镜hud- 自定义 HUDset_judgment- 判定调整
事件
text
on_combo 50 {
trigger "flash" {
color = "255 255 255"
duration = 0.5
}
}基本绘制
text
on_render {
color 255 255 255
text "Hello" 100 100
rect 50 50 200 30
line 0 0 100 100
}模板列表
滤镜模板
| 模板名 | 参数 | 效果 |
|---|---|---|
glitch | intensity (0-1), speed (0-2) | 花屏噪点 |
monochrome | amount (0-1) | 黑白去色 |
vignette | radius (0-0.5), darkness (0-1) | 边缘暗角 |
判定模板
| 模板名 | 参数 | 效果 |
|---|---|---|
wide | perfect (毫秒), great (毫秒) | 放宽判定 |
strict | perfect (毫秒), great (毫秒) | 收窄判定窗口(需注意:多个判定策略叠加时取最大窗口,收紧类策略需单独使用) |
HUD 模板
| 模板名 | 参数 | 效果 |
|---|---|---|
combo | position (top/center/bottom), color (R G B), font_size | 自定义连击显示 |
特效模板
| 模板名 | 参数 | 说明 |
|---|---|---|
burst | count, speed, color | 粒子爆发 |
触发器模板
| 模板名 | 参数 | 效果 |
|---|---|---|
shake | duration (秒), intensity | 画面抖动 |
flash | color (R G B), duration (秒) | 全屏闪白,duration 秒后淡出结束 |
message | text, color (R G B), opacity (0-1), duration (秒), text_color, font_size | 全屏提示层 + 居中文字,duration 秒后自动消失 |
事件列表
| 事件 | 示例 | 说明 |
|---|---|---|
on_combo N | on_combo 50 { ... } | 连击数达到 N 时触发 |
on_miss_count N | on_miss_count 3 { ... } | 连续 Miss N 次时触发(中途命中会清零重新计数) |
on_miss | on_miss { ... } | 每次 Miss 时触发 |
on_game_start | on_game_start { ... } | 游戏开始时触发 |
on_game_end | on_game_end { ... } | 游戏结束时触发 |
on_render | on_render { ... } | 每帧触发,可绘制内容 |
on_note_judged | on_note_judged { ... } | 音符被判定时触发 |
命令参考
| 命令 | 用法 | 说明 |
|---|---|---|
log | log "文字" | 输出日志 |
color | color 255 255 255 | 设置绘制颜色 |
text | text "文字" x y | 绘制文本 |
rect | rect x y w h | 绘制矩形 |
line | line x1 y1 x2 y2 | 绘制线条 |
if | if score > 900000 { ... } | 条件判断 |
let | let x = 5 | 赋值变量 |
trigger | trigger "shake" { duration = 2.0 } | 触发效果 |
effect | effect "burst" { count = 10 } | 播放特效 |
完整示例
text
# 综合示例
name "我的综合模组"
id "my_ultimate_mod"
author "你的名字"
version "1.0"
# 启用花屏和暗角滤镜
set_filter "glitch" {
intensity = 0.3
speed = 0.8
}
set_filter "vignette" {
radius = 0.3
darkness = 0.5
}
# 自定义连击显示
hud "combo" {
position = "top"
color = "0 255 200"
font_size = 48
}
# 放宽判定
set_judgment "wide" {
perfect = 80
great = 150
}
# 连击到 100 触发闪白庆祝
on_combo 100 {
trigger "flash" {
color = "255 255 255"
duration = 0.5
}
}
# 每帧绘制分数
on_render {
color 255 255 255
text "Score: " + score 20 20
}连续 Miss 提醒示例
连续 Miss 3 次时,在屏幕上叠加一层白色提示层,同时显示警示文字,1.5 秒后自动消失。中途只要命中一次,连续计数就会清零重新开始。
text
# 连续 Miss 提醒
name "连续 Miss 提醒"
id "miss_streak_demo"
author "你的名字"
version "1.0"
on_miss_count 3 {
trigger "message" {
text = "注意节奏!"
color = 255 255 255
opacity = 0.85
duration = 1.5
}
}on_miss_count 3只统计连续 Miss,连续 3 次未命中才触发message模板的color是提示层颜色(这里为白色)、opacity是层的不透明度、duration是显示时长- 不想要提示层、只显示文字时,去掉
color和opacity两个参数即可 - 在「在线体验」中选择预设「连续 Miss 提醒」即可直接试玩这个效果