cortico-world-cortidrive
v0.2.0
Published
Cortico World for Teach my little sister how to drive, with the bot in the driver seat: a BepInEx plugin replaces the sister model with the bot's drive tool and turns game calls into events. 此乃直播测试验证之后的world,和其他 Persona / 非直播场景的兼容性有待测试。
Readme
cortico-world-cortidrive
此乃直播测试验证之后的world,和其他 Persona / 非直播场景的兼容性有待测试。
Owner: src/definition.ts, plugin/.
教可缇开车: Cortico World for Teach my little sister how to drive (Steam, Unity Mono build) with the bot in the driver seat. The person in the passenger seat gives instructions by voice through the asr World; the bot drives with cortidrive_drive and talks through its VTuber. A BepInEx 5 plugin replaces the game's sister model with the bot's drive tool and serves game events over 127.0.0.1 TCP. The sister version, where the bot instructs and the game's model drives, is cortico-world-sisterdrive.
Install into a game copy
The plugin changes how the game plays (no model, no game voice, no microphone), so it goes into its own copy of the game, not the Steam install or the sisterdrive copy.
- Copy a game directory that has BepInEx 5.4.23.x installed (next to
teach_sister_to_drive.exe) outside the Steam library, withoutBepInEx/plugins/CorticoSisterDrive.dll. Addsteam_appid.txtcontaining3950270next to the exe (Steamworks needs it outside Steam's own launch). pnpm build:plugin(needs a .NET 8 SDK;GameDirinplugin/CortiDrivePlugin.csprojpoints at the copy and supplies the game assemblies to compile against).- Copy
dist/plugin/CorticoCortiDrive.dllto<copy>/BepInEx/plugins/. - Start the copy once;
BepInEx/LogOutput.logshowslistening on 127.0.0.1:47632. The port lives inBepInEx/config/ai.cortico.cortidrive.cfgand must matchworlds.cortidrive.port.
Set worlds.cortidrive.gameExe to the copy's exe; the World page's 游戏 panel (pnpm build produces its dist/webui.js) starts it with Steam running. Both copies share the game's save data under AppData/LocalLow/tsd.
What the World does
cortidrive_drive({ steps, action, line })is one turn of the driver. The game runs it as a reply of its own model, in the stage's own reply format: tutorial actions (fasten_seatbelt,start_engine,accelerate) move the tutorial story;stepsrun as a conditional plan on the car controller (speed km/h, steering -1..1, each step held until seconds / metres / degrees turned / stopped / near the parking goal);lineis what the bot says, and the game waits about as long as it takes to say it wherever its scripts wait for the sister's line. This covers what the sister model could do: the tutorial actions, the S-lane lever actions (steer, accelerate, brake, reverse), the numeric action sequences of the other stages, and the reply line.- The game voices nothing and ignores its microphone. Its own scripted sister lines arrive as
scriptevents for the bot to say. - Events:
script,plan,brief,mission,guide,situation,popup,fine,damage,illegalAction,collision,mine,emotion,stageEnd,scene, plus the live view. Frame fields: docs/protocol.md. cortidrive_lookreturns a screenshot (with a top view) and the current state;cortidrive_stagerestarts, advances, returns to the menu or continues.
A deployment that runs this World also enables the asr World for the instructor's voice and the vtuber World for the bot's.
