使用 Opencode 等工具进行构建,由 Opencode GO 提供模型支持
一个用于游戏 《放松时光:与你共享Lo-Fi故事》 的实时天气同步 BepInEx 插件,可以根据真实世界的天气情况自动调整游戏内的环境效果,或基于现实时间模拟昼夜循环。
「放松时光:与你共享Lo-Fi故事」是一个与喜欢写故事的女孩聪音一起工作的有声小说游戏。您可以自定义艺术家的原创乐曲、环境音和风景,以营造一个专注于工作的环境。在与聪音的关系加深的过程中,您可能会发现与她之间的特别联系。
所有代码均由 AI 编写,人工仅作反编译和排错处理。 这是我第一次用 AI 为 Unity 游戏做 MOD,有问题请反馈,虽然反馈了我也是再去找 AI 修就是了🫥
关联我写的第二个辅助 mod:iGPUSaviorMod
依托此 MOD,可以将部分配置项目注册到游戏的设置界面,进行快捷配置。
关联 BILIBILI 视频:时间、天气与土豆 (<-- 评价为:纯引流,啥干货没有)
ip 自动定位,OpenMeteo 支持经纬度定位UnlockAllEnvironments:是否解锁所有环境UnlockAllDecorations: 是否解锁所有装饰品UnlockPurchasableItems:是否解锁所有游戏币解锁内容F7 - 强制刷新天气
F8 - 显示当前状态
F9 - 手动触发同步
注:游戏逻辑上只能同时存在一个开启,但是实际上可以强开多个。感觉除了平滑切换场景能用上外感觉没啥必要提这一嘴
注:下列为游戏内效果,具体现实天气对应逻辑请看下文“使用方法”部分
开启彩蛋功能后,系统可能会随机或者在满足特定条件后主动开启某些风景效果。
开启彩蛋功能后,系统可能会在满足特定条件后主动开启某些声音效果。
🗒️ 本项目的未来计划和待办清单
⚠️ 重要:必须按顺序安装!
⚠️ 重要:请在发布/releases界面下载 dll 文件
BepInEx/plugins/ 文件夹已创建RealTimeWeatherMod.dll 放入 BepInEx/plugins/ 目录BepInEx/config/chillwithyou.envsync.cfg)F7 可以刷新配置常见问题:
*.dll,说明你下载的是源码(Source code),而不是发布产物(releases)首次运行后,配置文件将生成在 BepInEx/config/chillwithyou.envsync.cfg
[Automation]
## 启用季节性景色彩蛋自动托管
EnableSeasonalEasterEggs = true
## 启用环境音效自动托管
EnableAmbientSounds = false
[Debug]
## 是否开启调试模式 | 非调试请勿动
EnableDebugMode = false
## 模拟天气代码
SimulatedCode = 13
## 模拟温度
SimulatedTemp = 13
## 模拟天气描述
SimulatedText = DebugWeather
[Internal]
## 上次同步日期 | 非调试请勿动
LastSunSyncDate = 2025-12-02
[TimeConfig]
## 日出时间(格式:HH:mm) | 5.1.2版本不用手动修改
Sunrise = 06:30
## 日落时间(格式:HH:mm) | 5.1.2版本不用手动修改
Sunset = 18:30
[TimeSync]
## 是否启用时间同步(白天/黄昏/夜晚)
EnableTimeSync = true
[UI]
## 是否在游戏日期栏显示实时天气和温度
ShowWeatherOnDate = true
[Unlock]
## 是否自动解锁所有环境场景 | 可能包含某些未实装的场景,谨慎开启
UnlockAllEnvironments = true
## 是否自动解锁所有装饰品 | 可能包含某些未实装的饰品,谨慎开启
UnlockAllDecorations = true
## 解锁游戏币购买内容 | 可能大幅缩短游戏寿命,谨慎开启
UnlockPurchasableItems = false
[WeatherAPI]
## 是否启用天气 API 同步 | 不开启大部分功能无法使用
EnableWeatherSync = false
## 天气数据源: Seniverse(心知天气)或 OpenMeteo
WeatherProvider = OpenMeteo
## 心知天气 API Key | v5.1.2版本后,留空可直接使用内置密钥
SeniverseKey =
## 心知天气城市名称(拼音或中文,如:beijing、上海,ip 表示自动定位)
Location = beijing
## OpenMeteo 纬度,有效范围 [-90, 90]
Latitude = 39.9042
## OpenMeteo 经度,有效范围 [-180, 180]
Longitude = 116.4074
[WeatherSync]
## 天气API刷新间隔(分钟) | 非调试请勿动
RefreshMinutes = 30
## 天气缓存有效期(分钟) | 非调试请勿动
CacheExpiryMinutes = 60
WeatherProvider = Seniverse:使用心知天气。Location 生效,SeniverseKey 留空时使用内置 Key。WeatherProvider = OpenMeteo:使用 OpenMeteo。Latitude / Longitude 生效,不需要 API Key。💡 新版本内置密钥,留空也可用天气服务。自己申请也可用,看个人喜好
控制台 - 产品管理 - 免费版(如果你是试用版或者其他版本,请选择对应版本)SeniverseKey 字段,无需添加引号等特殊符号EnableWeatherSync = true 启用天气同步插件默认会根据配置的日出日落时间自动切换环境:
按照上述方法选择天气数据源,并配置城市或经纬度
插件将每隔指定时间(默认 30 分钟)自动获取天气并更新环境
环境映射规则:
| 环境 | 正常天气 | 恶劣天气 |
|---|---|---|
| ☀️ 白天(Day) | 日出 → 日落前30分钟 | — |
| 🌅 黄昏(Sunset) | 日落前30分钟 → 日落后30分钟 | — |
| ☁️ 多云(Cloudy) | — | 日出 → 日落后30分钟 |
| 🌙 夜晚(Night) | 日落后30分钟 → 日出 | 日落后30分钟 → 日出 |
💡 恶劣天气时,白天和黄昏时段统一显示为多云环境,黄昏效果会被跳过。夜晚环境不受天气影响,始终在日落后 30 分钟准时切入。
4, 7, 8, 9 (多云/阴天)
11, 12, 14-20 (中雨及以上, 雷暴, 冻雨)
23-25 (中雪及以上)
26-31 (沙尘/雾)
34-36 (风暴)
| 游戏效果代码 | 对应 API 天气 ID (参考) | 逻辑说明 |
|---|---|---|
| Snow | 20-25 (雪/雨夹雪/暴雪) | 所有的雪类,统统下雪。 |
| ThunderRain | 11, 12, 16, 17, 18 (雷/暴雨) | 雷阵雨、暴雨、特大暴雨,上强度。 |
| HeavyRain | 10, 14, 15 (阵雨/中雨/大雨) | 普通的下雨,量比较大。 |
| LightRain | 13, 19 (小雨/冻雨) | 淅淅沥沥的小雨。 |
| OFF (关闭) | 0-9, 26-39 (晴/多云/阴/雾/风) | 关键点:如果是阴天或多云,必须强制关闭所有雨雪效果! |
CacheExpiryMinutes 缓存期,直接向心知天气或 OpenMeteo 发起 HTTP 请求。Location、Latitude 或 Longitude 后,想立即生效。读取缓存:直接读取内存中的 _cachedWeather(如果没缓存,只算时间)。
重算时间:根据当前秒数 (DateTime.Now),重新计算是白天、黄昏还是夜晚。
暴力执行:
调用 ForceActivateEnvironment。
强制模拟点击 MainIcon(即使它看起来是亮着的)。
强制调用 WindowViewService.ChangeWeatherAndTime。
强制写入 SaveDataManager。
详细更新日志请查看 CHANGELOG.md 及 Git 提交记录
欢迎提交 Issue 和 Pull Request!
如需反馈问题,请先确保问题“可复现”,并开启调试日志(BepInEx/config/BepInEx.cfg 中将 Logging.Console 设置为 true)。
这时,游戏启动时会在控制台输出详细日志,有助于定位问题。
本项目采用 MIT 许可证 开源。
⚠️ 重要声明:
详见 LICENSE 文件。
免责声明:
本插件仅供学习交流使用,请勿用于商业用途。使用本插件产生的任何问题与作者无关。
本项目为粉丝自制 (Fan-made),与游戏开发商及发行商无关。
游戏《Chill with You - Lo-Fi Story》及其相关素材、商标的版权均归原作者所有。
即使生活一团糟,但也要心存希望