Titanfall 2: Northstar
Install with App

Details

Latest version
1.1.0
Last Updated
First Uploaded
Downloads
34
Likes
0
Size
166KB
Dependants

一键发言 · Speech Board

泰坦陨落 2 · 北极星(Northstar)客户端 mod 把常用台词存成「一条记录 = 一个按键 + 多行消息」,对局中按一次键,整条记录按顺序快速发出。

Titanfall 2 · Northstar client mod Save your usual callouts as records — one record is a custom name, one key, and multiple message lines. Press that key once in a match and the whole record is sent in order.

starwish9527.Speaker · v1.1.0 · Requires Northstar


功能 · Features

中文 English
一条记录 = 自定义名字 + 一个按键 + 多行消息 One record = a custom name + one key + multiple message lines
对局中按一次键,整条记录的多行消息按顺序快速发出 Press the key once; every line of that record is sent in order
「全部发送 / 停止发送」共用一个键来回切换 One key toggles between "send all" and "stop"
按键在 mod 界面里直接绑定,几乎任何键都能绑 Bind keys directly in the mod UI — almost any key works
记录保存在可手动编辑的 JSON 里 Records are stored in a hand-editable JSON file
界面支持繁中 / 英文 UI available in Traditional Chinese and English

中文说明

安装

  1. 确保已安装 Northstar 客户端;

  2. 把 starwish9527.Speaker 整个文件夹放进:

    <泰坦陨落2安装目录>/R2Northstar/mods/
    
  3. 启动游戏。主菜单左下角会出现 一键发言 入口(手柄为 LB), 「模组 / Mods」菜单里也有同样的入口。

从 Thunderstore 安装的话,用 Northstar 的 Mods 管理器或直接解压到上面这个目录即可。

使用

编辑记录

  1. 打开「一键发言」界面;
  2. 左栏是记录列表,点击选中一条;
  3. 右栏上方填 记录名,中间填 消息内容 —— 一行一条,下方是 按键绑定;
  4. 左栏右下角是 新增 / 删除 记录。

绑定按键

右侧底部是 按鍵綁定:… 按钮 —— 给当前选中的这条记录绑键。 点它之后变成「請按下要綁定的按鍵」,按下想用的键即可。

「全部发送 / 停止发送」不占界面按钮,改为在设置 → 控制 → 按键绑定的 SPEECH BOARD 分组里绑定:

  • 一鍵發言:全部發送 / 停止(同一鍵切換) —— 空闲时按下=依次发出全部记录,正在连发时按下=立刻停止;

  • 一鍵發言:中斷 —— 只做中断。

  • Esc 取消这次绑定

  • Del 清除这条记录的绑定

  • 字母、数字、F1–F12、小键盘、方向键、符号键、修饰键……几乎所有键都能绑

  • 如果某个键已经被游戏占用,绑定会覆盖它(想找回原绑定可在「设置 → 控制 → 按键绑定」里改)

在游戏里使用

选中记录的按键后,对局中按一下,这条记录的多行消息就会按顺序快速发出(默认每条间隔 0.35 秒)。 「全部发送 / 停止」键则是一次发出所有记录,再按一次立刻停下。

数据文件

记录保存在游戏目录下(Northstar 的 mod 存档区):

<Titanfall2>/R2Northstar/save_data/starwish9527.Speaker/speaker_data.json

格式(可以手动编辑,游戏内用 speaker_reload 重新读取):

{
  "version": "1",
  "count": "2",
  "all_key": "F12",
  "r1_name": "打招呼",
  "r1_key": "F1",
  "r1_text": "收到!\n干得漂亮!\nGG",
  "r2_name": "战术",
  "r2_key": "F2",
  "r2_text": "小心狙击手\n我来占点"
}
  • all_key 全部发送 / 停止的切换键(留空 = 未绑定);
  • rN_name 记录名,rN_key 绑定的按键(留空 = 未绑定),rN_text 消息内容;
  • rN_text 里用 \n 分隔多条消息,每一条会作为单独一条聊天发出。

为什么不是「一条聊天里带换行」?因为泰坦陨落 2 的聊天面板是行缓冲、消息要经单行指令通道传输, 换行会破坏解析。所以设计成「一条记录 = 多条聊天,按顺序快速发出」。 详见 DEVELOPMENT.md 第 9 节的调研。

控制台命令

命令 作用
speaker_say <N> 发出第 N 条记录(绑定按键实际执行的就是它)
speaker_say_all 按顺序发出全部记录
speaker_toggle 一个键切换:没在连发就全部发出,正在连发就停止
speaker_stop 中断正在进行的连发
speaker_reload 重新读取数据文件
speaker_status 打印当前记录、绑定与存档路径
speaker_test_say 聊天通道测试 A(客户端 say)
speaker_test_impersonate 聊天通道测试 B(服务端 Chat_Impersonate)

配置项

ConVar 默认 说明
speaker_line_delay 0.35 同一记录内多条消息之间的间隔秒数,越小越快
speaker_team_chat 0 1 = 发到团队频道,0 = 全体频道
speaker_send_mode 0 0 = 客户端 say(推荐);1 = 服务端 Chat_Impersonate
speaker_debug 0 1 = 启动时在日志里打印界面布局与按键绑定自检

想改就把这些写进 R2Northstar/mod/cfg/autoexec_ns_client.cfg(或游戏内控制台直接输入)。

常见问题

Q:按下绑定键没反应? A:先确认记录里确实有消息内容(列表行尾的 (N) 是消息条数,(0) 表示空的)。再确认绑定按钮上显示的是键名而不是「未設定」。若仍然无效,用 speaker_status 看绑定是否写进去了。

Q:聊天里没出现我发的话? A:先用 speaker_test_say 测通道 A。如果没反应,把 speaker_send_mode 设为 1 走通道 B —— 通道 B 需要服务端也装了本 mod(私人房/自建服务器满足;进别人的服务器不满足)。

Q:绑定的键和原来的功能冲突了? A:绑定会直接覆盖。mod 界面里能绑的键很多,建议优先用小键盘或 F 区这类平时不用的键。 想恢复原绑定:在「设置 → 控制 → 按键绑定」里改回去。

Q:改完记录忘了保存就退出了? A:退出时会弹窗问你要不要保存,选「保存并退出」即可。

Q:想批量改台词? A:直接用文本编辑器改 speaker_data.json(注意 \n 是转义换行),然后在游戏里执行 speaker_reload。

兼容性与依赖

  • 需要 Northstar 客户端;无其它 mod 依赖。
  • 聊天通道 B 需要服务端加载本 mod,通道 A(默认)不需要。
  • 与 Northstar 官方 mod、DemoManager 等共存测试通过。
  • 已知限制:
    • 游戏里极少数字符会被过滤(" ; % 与换行),以避免破坏指令解析;
    • 同一按键只能属于一条记录,「全部发送 / 停止」键与记录按键互斥,重复绑定会自动解除旧的。

English Guide

Installation

  1. Install the Northstar client.

  2. Drop the whole starwish9527.Speaker folder into:

    <Titanfall2 install dir>/R2Northstar/mods/
    
  3. Launch the game. A Speech Board entry appears in the bottom-left footer of the main menu (LB on a controller), and in the Mods menu as well.

If you install from Thunderstore, just unzip it into that same folder.

Usage

Editing records

  1. Open the Speech Board menu.
  2. The left panel lists your records — click one to select it.
  3. On the right: the record name on top, the message content (one line per message) in the middle, and the key bind at the bottom.
  4. The bottom-right of the left panel has Add / Delete.

Binding keys

The bind button at the bottom of the right panel — Key bind: … — binds a key to the currently selected record. Click it and it turns into "Press the key to bind", then press the key you want.

Send-all / stop is not a UI button; bind it from Settings → Controls → Key Bindings, group SPEECH BOARD:

  • Speech Board: send all / stop (toggle) — press while idle to send every record in order, press again to stop immediately;

  • Speech Board: stop — stop only.

  • Esc cancels the capture

  • Del clears the binding

  • Letters, digits, F1–F12, the numpad, arrow keys, symbol keys, modifiers… almost anything works

  • If the key is already used by the game, this bind overwrites it. Restore the original in Settings → Controls → Key Bindings.

Using it in a match

Press a record's key in a match and its message lines are sent in order (0.35 s apart by default). The send-all/stop key sends every record at once; press it again to stop immediately.

Data file

Records live next to your other Northstar mod saves:

<Titanfall2>/R2Northstar/save_data/starwish9527.Speaker/speaker_data.json

Format (hand-editable — run speaker_reload in-game to reload it):

{
  "version": "1",
  "count": "2",
  "all_key": "F12",
  "r1_name": "Hello",
  "r1_key": "F1",
  "r1_text": "Copy that!\nNice one!\nGG",
  "r2_name": "Tactics",
  "r2_key": "F2",
  "r2_text": "Sniper!\nCapping the point"
}
  • all_key — the send-all/stop toggle key (empty = unbound);
  • rN_name — record name, rN_key — bound key (empty = unbound), rN_text — message content;
  • \n inside rN_text separates messages, and each one is sent as its own chat message.

Why not a single chat message containing newlines? Titanfall 2's chat panel is line-buffered and messages travel through a single-line command channel, so embedded newlines break parsing. That is why one record becomes several chat messages sent in quick succession. See section 9 of DEVELOPMENT.md (Chinese) for the research.

Console commands

Command Effect
speaker_say <N> Send record N (this is what a bound key runs)
speaker_say_all Send every record in order
speaker_toggle One-key toggle: send all when idle, stop when sending
speaker_stop Abort the current burst
speaker_reload Re-read the data file
speaker_status Print records, bindings and the save path
speaker_test_say Test chat channel A (client say)
speaker_test_impersonate Test chat channel B (server Chat_Impersonate)

ConVars

ConVar Default Meaning
speaker_line_delay 0.35 Seconds between messages inside one record; lower is faster
speaker_team_chat 0 1 = team chat, 0 = all chat
speaker_send_mode 0 0 = client say (recommended); 1 = server Chat_Impersonate
speaker_debug 0 1 = print a layout and key-bind self-test to the log at startup

Put them in R2Northstar/mod/cfg/autoexec_ns_client.cfg, or type them in the in-game console.

FAQ

Q: Pressing my bound key does nothing. A: Make sure the record actually has content (the (N) at the end of a list row is its message count — (0) means empty), and that the bind button shows a key name instead of "not set". Run speaker_status to check whether the bind was written.

Q: My messages never show up in chat. A: Test channel A with speaker_test_say. If nothing happens, set speaker_send_mode to 1 to use channel B — channel B requires the server to have this mod installed (fine on your own listen server or private match, not on someone else's server).

Q: My bound key conflicts with a vanilla action. A: The bind overwrites it. Prefer keys you never use, such as the numpad or the F-row. To restore the original, rebind it in Settings → Controls → Key Bindings.

Q: I forgot to save before leaving. A: The menu asks on exit — choose "Save and exit".

Q: I want to edit all my lines at once. A: Edit speaker_data.json in a text editor (\n is an escaped newline), then run speaker_reload in-game.

Compatibility

  • Requires the Northstar client; no other mod dependencies.
  • Chat channel B needs the mod on the server; channel A (the default) does not.
  • Tested alongside Northstar's bundled mods and DemoManager.
  • Known limitations:
    • A few characters are stripped (", ;, % and newlines) so the command channel stays intact;
    • A key can belong to only one record, and it is mutually exclusive with the send-all/stop key — rebinding a key automatically releases its previous owner.

更新日志 · Changelog

1.1.0

  • 新增:文字颜色 —— 颜色框填颜色码(6 位十六进制或 ANSI 码),整条记录发送时上色
  • 新增:就地按键绑定扩展到 105 个按键(字母、数字、符号、修饰键),无需跳转原生绑定页
  • 新增:发送守卫 —— 不在多人对局中时不发送,避开引擎在服务器 VM 切换窗口的崩溃
  • 新增:保存按钮按脏状态显隐 —— 有未保存修改才出现,与退出时的保存询问共用同一状态
  • 修正:彩色输出为空(净化顺序)、彩色输出不生效(发送路径未使用记录颜色)
  • Added: message colours — set a colour code (6-digit hex or ANSI) and the whole record is coloured when sent
  • Added: in-place key binding for 105 keys (letters, digits, symbols, modifiers)
  • Added: send guard — refuses to send outside a live multiplayer match, avoiding an engine crash during server VM transitions
  • Added: the Save button appears only when there are unsaved changes, sharing one state with the exit confirmation
  • Fixed: empty coloured output (sanitise order) and colours not applied on send 1.0.0
  • 首次发布:多行记录 + 按键绑定 + 就地捕获全部按键 + JSON 存档 + 中英文界面
  • Initial release: multi-line records, in-place key binding for (almost) every key, JSON save file, Chinese/English UI

许可 · License

CC0-1.0(可自由使用、修改、再发布 / free to use, modify and redistribute)

联系 / 反馈 · Contact

欢迎反馈问题与建议 / Bug reports and suggestions are welcome.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.