nineMinecraft is a joke site.
nineMinecraft is in no way affiliated with Modrinth or 9minecraft. (And frankly, who wants to be affiliated with the latter?)
Betterworld(village)

Betterworld(village)

Mod

This mod adds a new entity to Minecraft, providing players who want to simulate civilizations or build cities with a way to inject vitality and energy into their worlds.

Client and server EconomyGame Mechanics

43 downloads
0 followers
Filter channels...

BetterWorld 更新日志

版本:1.0.8 银行方块、镇财政和实体交互升级

镇财政与经济自增长

  • 镇方块印钱机制:每天统计全镇交易额和生产额,按配置比例增发 money 到镇金库,模拟央行货币发行。

    • 交易额:商人真实/离线成交金额自动上报
    • 生产额:资源点产出按估值自动上报
    • 支持每日上限封顶(maxPerDay,0 表示不封顶)
    • 可通过配置开关 town.moneyMinting.enabled 控制
  • 多公务员系统:镇方块支持绑定多个公务员/雇员,每人可单独设置工资。

    • 工资每天从镇金库自动发放,默认 10 money/天
    • 工资是增发资金进入实体经济的主要通道
    • 工资数据保存在 OfficialWages
  • 镇管理页增强:新增今日生产额、上次增发金额等经济数据显示

银行方块 (许多功能未完成)

  • 新增 Bankblock 方块及 BankblockEntity
  • 支持范围设置、预览、确认区域
  • 支持绑定实体和管理居民
  • GUI 按白底黑字风格统一,补齐标题和范围输入显示
  • 注:存贷核心功能将在 1.0.9 版本实现

实体交互升级

  • 统一交互页:右键 Steve 实体先打开交互页,不再直接进入交易

    • 普通实体:显示聊天按钮
    • 商人实体:额外显示交易按钮
    • 聊天带冷却,避免频繁刷屏
  • 玩家喂食:手持食物 Shift + 右键 Steve 实体,可消耗食物恢复实体饱食度

商人交易优化

  • 交易分页:出售/收购列表每页最多 10 个报价,超过后自动分页,避免 GUI 溢出
  • 界面简化:商人主页面不再渲染玩家物品栏,只保留商人操作区
  • 布局修复:价格页、经济页和主页面的布局问题已修复

GUI 统一修复

  • 修复多个方块主界面的标题显示问题
  • 修复范围 X/Y/Z 文字和输入框重叠问题
  • 白底界面统一使用黑色字体,解决白底白字不可见问题
  • 涉及方块:商人、家、银行、农场、工坊、资源点、镇方块

经济体系变化总结

  • 1.0.8 之前:货币总量 = 玩家注入的绿宝石,经济依赖玩家持续注资
  • 1.0.8 之后:货币总量跟随生产、交易规模同步增长,经济实现内生造血

版本:1.0.7 多实体绑定与居民管理

多实体绑定

  • 家方块、农场方块、工坊方块、资源点方块支持多实体绑定。
  • 绑定列表使用 BoundEntities 保存,列表首位仍作为 owner 兼容旧存档。
  • 家方块容量改为手动可调,不再由床数直接决定。
  • 各方块管理页新增分页、解绑、容量调整和每个实体的“详细”入口。

居民与镇管理

  • 镇方块新增居民管理入口,可汇总镇范围内所有家方块的居民名单。
  • 支持手动登记镇居民、排除镇居民,以及查看居民详情。
  • 居民详情页改为打开独立的 Steve 信息界面,支持 ESC 返回上一页。

镇强加载

  • 镇管理页新增“强加载”子页面,可为当前镇开启或关闭强加载。
  • 强加载范围按区块半径配置,当前上限为 8 个区块半径,并会在页面中显示预计区块数量和大致方块宽度。
  • 设置保存在 TownblockEntityForceLoadEnabledForceLoadRangeChunks NBT 字段中。
  • 开启后镇方块会通过 ServerLevel.setChunkForced(...) 保持周围区块加载;关闭、调整范围或镇方块被替换/破坏时会撤销旧范围。
  • 强加载开启时,镇会被视为持续精确运行状态,不触发无人镇离线补算,避免真实 tick 和离线模拟重复结算。

床位与睡觉

  • Steve 床位统一改为 BedInfo,保存床头、床脚和朝向。
  • SleepTask 和离线睡眠都直接按 BedInfo 定位,不再使用旧的 BedPos 三元坐标。
  • 修复睡觉时实体落到床下面的问题:BedInfo.sleepY() 现在使用床面高度 Y + 0.5625,在线睡觉和离线回城睡觉都会使用同一坐标。

离线模拟拆分

  • 离线模拟逻辑已拆到 src/main/java/com/BetterWorld/block/entity/townblock/offline/
  • 新增 OfflineTradeExecutor 复用实时交易的核心校验,离线流程不再写第二套交易逻辑。
  • 离线补算继续按天循环,维持资源点、农民、工匠、生活费、商人日结的顺序。

修复 部分

  • 管理居民/工人页面的“详细”按钮现在打开独立 Steve 信息界面,不再把详情挤在原页面右侧。
  • 从 Steve 信息书直接打开详情时,按 ESC 关闭;从家、农场、工坊、资源点或镇管理页面打开详情时,按 ESC 返回上一管理页面。
  • Steve 信息菜单改为保存实体 ID 并延迟解析实体,避免从管理页点“详细”后一闪而过或立刻关闭。
  • 从管理页查看居民详情时不再强制要求玩家离该 Steve 足够近,只要服务端能找到该 Steve,就允许打开资料页。
  • 如果客户端暂时还没同步到目标 Steve,资料页会显示“正在加载史蒂夫资料...”,而不是空白或直接关闭。
  • 绑定容量不能被减到当前绑定人数以下;继续点击减号会提示玩家先解绑多余成员。
  • 镇居民列表里的家方块坐标显示位置左移,避免太靠右导致页面拥挤。

交易资金不足回家取钱

  • 新增通用交易补钱流程:AI 交易遇到 buyer_no_moneybuyer_payment_failedmerchant_no_money 时,会登记补钱请求并尝试回家从家容器取镇货币。
  • 买家钱不够时买家回家取钱;商人收购物品时钱不够,则由商人自己回家取钱。
  • 补钱目标通过 TradeMoneyRefillGoal / TradeMoneyRefillTask 执行,优先级高于普通工作和交易,但低于危险、睡觉和吃饭。
  • 普通职业交易、买食物、工坊买材料/卖成品、资源工卖货、囤积交易和套利交易都会识别资金不足失败。
  • 对于还没进入 TradeService 就被预算预判挡住的情况,农民买种子、买食物和工坊买材料也会主动登记补钱请求。
  • 如果只是资金不足,不会立刻挂长交易失败冷却;补钱后可以重新尝试。家里没有可用货币时会写日志并进入短冷却,避免反复跑家。
  • 补钱请求会去重,同一段时间内不会刷屏;如果后续交易需要更多钱,会抬高已有请求金额并刷新 TTL。

性能说明

  • 在线真实运行时,主要性能消耗仍来自实体 AI、寻路、Sensor 扫描、农民巡田、商人查找和容器/方块交互;多实体绑定会增加实体数量带来的线性成本,但不会额外引入每 tick 的全镇大扫描。
  • 镇方块居民页和绑定总览主要在打开 GUI 或渲染页面时汇总当前镇数据,不应放到高频 tick 中反复扫描。
  • 无人镇会让商人和资源点跳过精确 tick,再在玩家回镇时走镇级离线摘要补算;离线模拟按天、按镇、按容器做低粒度估算,成本通常比让所有实体持续真实跑 AI 低得多。
  • 后续如果出现卡顿,优先检查 SensorSystemMerchantFinder、农民巡田扫描、资源点生产频率、活跃 Steve 数量和正在打开的管理 GUI,而不是先怀疑离线模拟。
  • 关闭默认 AIDebug 控制台输出,避免大量 AI 目标/移动/交易日志拖慢 tick。
  • 商人绑定实体查询增加同 tick 缓存;MerchantFinder 只需要排除“商人自己”时改为直接比 UUID,减少 256 格实体扫描。
  • 多实体绑定查询增加同 tick 缓存,降低家/农场/工坊/资源点反复读取绑定实体时的扫描成本。
  • 资源点 tick 优化为只有真正产出时才查找可投递资源工;普通规则进度不再每 tick 同步方块实体。

版本:1.0.6 镇级离线模拟和离线摘要

套利和交易日志

  1. 修复套利失败原因显示

    • arbitrage_failed 日志中的失败原因现在会走 log.betterworld.trade_failure_reason.* 翻译。
    • 不再把 reverse_trade_loop 这类内部原因 key 直接显示给玩家。
  2. 套利候选提前避开反向交易限制

    • ArbitrageStrategy 在挑选买入商人和卖出商人时会检查 TradeLoopGuard
    • 被短期反向交易限制挡住的套利机会会被跳过,减少“刚发现机会就失败”的刷屏日志。

离线模拟

  1. 按镇级边界触发

    • 离线模拟不再盯着单个区块加载等级,而是看镇范围内是否还有非旁观玩家。
    • TownblockEntity 会记录最后一次强加载时的 LastStrongLoadedGameTimeLastStrongLoadedDayTime
    • 镇范围内无人时,商人和资源点跳过精确 tick;玩家回来后如果离线时长超过 town.offlineSimulation.minTicks,镇会按时间差补算。
    • 默认最小离线时长是 6000 tick,单次最多补算 town.offlineSimulation.maxDays 天,默认 30 天。
  2. 按天循环计算

    • 离线补算不是把所有结果一次性算完,而是按“天”循环推进。
    • 每天先抓一份当日商人价格快照,再用这份快照执行当天离线交易。
    • 当天交易结束后,再做商人跨日经济结算,第二天交易就使用更新后的价格。
    • 这样可以避免“同一天前后价格不一致”或“离线交易误用未来价格”的问题。
  3. 当前已经补算的内容

    • 资源点:按产出规则补生产,产物先进入资源点容器,再按比例由资源工从容器中售出。
    • 农民:会读取绑定农场方块缓存的耕地和作物扫描结果,按作物类型和离线天数估算日均产量;估算收获先进入农民家容器,再和家中已有农产品一起按比例卖给商人。
    • 工匠:会按工坊配方、家容器材料和每日加工上限估算加工批次,消耗材料并把成品存回家容器;随后出售家容器里的成品,并按材料缺口从商人处买回一部分材料。
    • 生活费:按离线天数从每个镇内绑定 AI 的个人 money 中扣固定日常开销,扣掉的钱直接消失。
    • 关系:镇内绑定 AI 会按离线天数累积少量社交好感变化,并写入统一日志。
    • 位置:离线结束后不回放路径,只按当前时间把 AI 放到工作点、家附近或床附近的合理锚点。
  4. 计算原则

    • 所有离线交易都受性格影响,交易比例会乘以 PersonalityProfile.offlineTradeRatioMultiplier();当前覆盖资源售卖、农民出售、工匠出售、工匠采购和工匠加工上限。
    • 交易按当天价格快照结算,商人资金不足时只成交可支付数量,剩余物品回到原容器。
    • 资源点、农民、工匠的离线交易都只扫描绑定容器,不会乱扫其他箱子。
    • 离线模拟的目标是“前情提要”,让资金、价格、库存、关系、日志和位置能互相解释,而不是精确还原每一秒。
  5. 离线摘要

    • 每个 Steve 还会保存一条单独的离线摘要。
    • 摘要会从价格波动、资金变化、交易卡住、里程碑和关系变化里挑 3 到 5 件最重要的事。
    • 信息书日志页顶部会先显示这条摘要,再显示按天分页的详细日志。
  6. 离线模拟代码结构拆分

    • 离线模拟逻辑已从 TownblockEntity 抽到 src/main/java/com/BetterWorld/block/entity/townblock/offline/
    • TownOfflineSimulation 负责总控,OfflineTownContext 负责收集镇内实体、家、工坊和商人。
    • OfflineTradeServiceOfflinePlacementServiceOfflineSocialService 分别处理离线交易、落点和关系变化。
    • TownblockEntity 只保留触发入口和必要状态访问器。
  7. 新增 OfflineTradeExecutor

    • 离线买卖由 OfflineTradeExecutor 统一执行,复用实时交易同类核心规则:价格、库存、资金、收购容量、税额和经济统计。
    • 离线交易使用当天价格快照,不写实时商人经营日志,不触发实时经济页网络同步。
    • MerchantblockEntity 新增离线统计记录方法,只更新统计并标记脏数据,避免无人镇补算时发送实时同步包。
    • 资源点本体只负责离线产出到资源点容器,资源工售卖统一交给镇级离线交易服务。
  8. 农民离线产量估算

    • OfflineTownContext 现在会收集绑定到农民的 FarmblockEntity
    • OfflineTradeService 会根据农场扫描缓存中的耕地数量和作物类型估算每日产量。
    • 小麦、胡萝卜、土豆、甜菜会按不同作物产物进入农民家容器,并写入离线产出日志和离线摘要。
    • 该逻辑不修改真实田地状态,只用于让离线期间的农民库存、出售、资金和日志能互相解释。
  9. 工匠离线加工

    • 工匠离线期间会按工坊配方检查家容器材料,估算可加工批次。
    • 加工会消耗家容器中的材料,把成品放回家容器,再进入同一天的离线出售流程。
    • 加工批次受 WORKSHOP_MAX_CRAFTS_PER_WORK_TASK 和性格倍率影响,不模拟逐 tick 加工。
    • 资源工离线日志措辞改为“资源点物资被售出”,避免误导玩家以为真实执行了取货路径。

版本:1.0.5 可配置货币、NBT 物品交易和商人玩家兑换修正

货币兑换系统

  1. 新增镇方块货币兑换配置

    • 镇方块主界面只保留“货币兑换”按钮,不再放物品槽和玩家物品栏。
    • 点击后打开独立的 TownCurrencyMenu / TownCurrencyScreen,在新界面里配置货币规则。
    • 玩家可以把物品放入槽位,配置“1 物品 = ? money”的兑换比例。
    • 规则先在 GUI 内作为草稿编辑,点击“保存”后才写入 TownblockEntity NBT。
    • 点击“取消”会关闭界面并丢弃未保存改动。
    • 规则列表支持删除、上移和下移;从上到下即兑换优先级。
    • 新城镇和旧城镇如果没有 CurrencyRules,默认都使用 minecraft:emerald = 1 money
  2. 支持多货币和 NBT 货币

    • 货币规则使用完整 ItemStackKey,严格区分物品 ID 和 NBT。
    • 普通物品如泥土没有 NBT 时按 ID 匹配。
    • 命名物品、附魔书等带 NBT 的物品会按 ID + NBT 区分,不会混在一起。
    • 未配置货币规则时,继续使用绿宝石 1:1 的旧逻辑,兼容已有世界。
  3. 实体早晚存取钱改为走镇货币规则

    • TakeMoneyTask 改为读取实体家方块绑定的镇方块货币配置。
    • 早上从家容器取出配置货币物品,并按汇率转换为实体身上的数字 money
    • PutMoneyTask 改为把实体剩余 money 按镇货币规则兑换成货币物品并存回家容器。
    • 如果剩余 money 不足以兑换任意一个最低面额货币物品,会保留在实体身上。
    • 交易、预算、价格计算仍然只使用数字 money,货币物品只在进出经济系统时兑换。
  4. 优化多面额货币的取钱和存钱

    • AI 晚上存钱时会按汇率从高到低兑换,优先生成高面额货币物品,减少容器占用。
    • 例如 1 钻石 = 100 money 时,1000 money 会优先存成 10 个钻石,而不是 1000 个绿宝石。
    • AI 早上取钱时会先规划兑换组合,尽量接近目标金额,避免因为高面额货币导致明显超取。
    • 如果能精确凑到目标,会优先精确取钱;如果凑不满,则尽量取接近目标的金额;只有必须超额时才取最小超额组合。
    • 玩家卖货收款和交易找零也改为优先发放高面额货币,减少玩家背包压力。
  5. 明确职业取钱范围

    • 农民、商人、工匠和资源工早上都会通过 TakeMoneyTask 从家容器按镇货币规则取出工作资金。
    • 资源工取钱后仍会去资源点容器拿资源产物,白天卖给商人获得数字 money
    • 资源工早晨取钱金额由 resource.morningCashTarget 控制,默认 64。
    • 资源工晚上会把当天剩余和卖资源赚到的 money 按镇货币规则兑换成货币物品并存回家。

NBT 物品交易和库存

  1. 商人、工坊、资源点槽位支持同 ID 不同 NBT

    • 价格、规则、库存和显示改为使用完整 ItemStackKey
    • 同一个物品 ID 但 NBT 不同的物品可以作为不同商品、不同资源规则或不同工坊材料/产物存在。
    • 拿出、放入、交易保存和转移物品时保留 NBT,不再退化成纯物品 ID。
  2. 统一容器物品转移逻辑

    • 整理 ContainerUtils,取物和存物优先走 ItemStack/NBT 匹配路径。
    • 移除旧的、已被替代的商人交互工具和重复交易方法,减少同一行为存在多套实现。
    • AI 实体直接买卖、拿进拿出物品时,都会尽量保留原物品 NBT。
  3. 商人价格和经济显示区分 NBT 物品

    • 商人价格表和经济数据页继续按完整 key 记录和查询。
    • 带 NBT 的物品显示名后增加 [NBT] 标记,避免两个同名物品看起来像同一条记录。
    • 删除某个带 NBT 商品的价格时,只影响对应 NBT 版本,不会误删同 ID 的其他版本。

玩家与商人交易

  1. 玩家付款改为使用镇货币规则

    • 玩家向商人购买物品时,不再硬检查和扣除背包绿宝石。
    • 交易仍然以 money 数字计价,但付款时会读取商人绑定镇方块的货币规则。
    • 系统会在玩家背包中按镇货币规则寻找可用货币物品,按优先级混合扣款,严格匹配 ID + NBT
    • 交易会先模拟“扣款 + 找零”能否都成功,再真正执行;如果金额不够、背包装不下找零,或无法按规则凑出可用支付方案,交易直接失败。
    • 找零也会按同一套镇货币规则返回玩家背包,不再只认单一绿宝石。
  2. 玩家卖货收款也走镇货币规则

    • 玩家把物品卖给商人时,商人仍然用自身 money 判断是否付得起。
    • 给玩家的报酬不再固定发绿宝石,而是按镇货币规则兑换成货币物品放入玩家背包。
    • 发放前会检查玩家背包是否能装下对应货币物品。
    • 未配置镇货币规则时,仍然发放绿宝石 1:1。
  3. 修复商人玩家交易中的 NBT 丢失

    • MerchantTradeMenu 生成交易报价时改为通过 ItemStackKey.stackFromKey(...) 还原物品。
    • 玩家购买、出售、缺货记录、买不起记录、交易统计和反向交易限制都使用完整 ItemStackKey
    • 玩家交易中的扣物、给物继续使用 ItemStack.isSameItemSameTags,同 ID 不同 NBT 不会串货。

镇方块

  1. 镇方块区域确认不再扫描容器
    • 镇方块确认区域时只记录范围内的家方块、农场方块和商人方块等组织信息。
    • 不再把范围内的普通箱子、木桶等容器记录为镇方块容器,避免误统计一批无关箱子。
    • 旧存档中镇方块已保存的 Containers 数据会被忽略,后续保存也不再写入镇方块容器列表。
  2. 镇方块新增 money 金库
    • TownblockEntity 新增明确的 money 字段,用于保存镇金库资金。
    • 删除旧的 TaxTreasury 字段和旧税收入口,镇金库只保存 Money
    • 交易税现在直接进入镇方块 money,绑定公务员领取工资时也从该字段扣除。

囤积策略

  1. 新增恐慌性囤积
    • 非商人实体在普通低价囤积之外,会观察商人出售价格的连续上涨趋势。
    • 当某商品连续上涨达到配置天数、当前价仍未明显高于 7 日均价,并且存在缺货、买不起或真实成交等需求压力时,会进行小批量提前买入。
    • 该逻辑用于模拟实体担心经常需要的商品继续涨价或断货时的备货行为,而不是单纯追求套利。
    • 恐慌囤积仍受预算、保留闲钱、家中最大库存、单次购买上限、价格弹性、商人库存和食物保留规则限制。
  2. 新增恐慌囤积配置
    • trade.hoarding.panic.enabled 控制是否启用恐慌囤积。
    • trade.hoarding.panic.minRisingDays 控制触发所需的连续上涨天数,默认 3。
    • trade.hoarding.panic.maxAverageMultiplier 控制当前价格相对均价的最高可接受倍率,默认 1.10。
    • trade.hoarding.panic.minDemand 控制触发所需的最低需求压力,默认 1。
    • trade.hoarding.panic.maxUnitsPerTrip 控制单次恐慌囤积购买上限,默认 8。
    • 五维性格会在这些基础配置上微调触发门槛:节俭、冒险、聪明的实体更早恐慌,挥霍或保守实体更晚触发。
  3. 囤积交易继续保留 NBT
    • 囤积策略内部改为使用 ItemStackKey.stackFromKey(...)ItemStack 生成交易请求。
    • 囤积卖出前从家里取货时使用 ItemStack 精确匹配,避免同 ID 不同 NBT 的物品被混取。
    • 囤积交易日志也记录完整 ItemStackKey,和商人价格表、经济数据保持一致。

AI 套利行为

  1. 新增空闲套利副业
    • 非商人职业会在本职工作、吃饭、睡觉和收工之外的空闲时段尝试套利。
    • 套利流程为:从同镇商人 A 买入商品,移动到同镇商人 B,再卖给商人 B。
    • 商人职业不会套利,避免商人使用公共经营资金自买自卖。
    • 套利交易继续走 TradeService,因此会保留 NBT、记录经济数据、遵守反向交易限制和税收逻辑。
  2. 新增套利限制
    • 两个商人必须绑定同一个镇方块。
    • 单次数量受 trade.arbitrage.maxUnitsPerTrip 限制,默认 8。
    • 成功后进入 trade.arbitrage.successCooldownTicks 冷却,默认 2400 tick。
    • 失败后进入 trade.arbitrage.failureCooldownTicks 冷却,默认 1200 tick。
    • 需要套利者有可支配 money,商人 A 有可卖库存,商人 B 有收购容量和足够 money。
    • 预期利润必须至少达到 trade.arbitrage.minProfitMoneytrade.arbitrage.minProfitRate,默认至少 1 money 且 5%。
  3. 性格影响套利门槛
    • 套利门槛由 PersonalityProfile.arbitrageProfitMultiplier 按五维属性计算。
    • 更聪明、更敢冒险的实体可以接受较低利润门槛。
    • 保守、低慷慨或节俭倾向较强的实体会要求更高利润。
    • 套利成功和失败都会写入活动日志,便于在实体信息书里追踪。

性格机制

  1. 性格从枚举标签升级为五维属性
    • 实体性格现在保存为合群、慷慨、聪明、勤勉、冒险 5 个 0-100 数值。
    • 旧的合群、孤僻、节俭、挥霍仍保留为模板名、显示倾向和旧存档兼容入口,不再作为行为 switch 的唯一依据。
    • 新生成实体会先选择一个可读模板,再对五维属性做随机扰动,因此保留“像某类人”的辨识度,同时拥有连续差异。
    • 旧存档读取 Personality 字符串时会自动映射到对应模板向量,保持兼容。
  2. 行为差异改为公式化
    • PersonalityProfile 不再按性格枚举写 switch,而是从五维属性计算交易频率、本职交易次数、补给目标、囤积倾向、买价敏感度、比价范围、关系容量和套利利润门槛。
    • tradeFrequencyMultiplier 主要影响闲散交易、副业行为和非本职购买频率。
    • workTradeMultiplier / scaleWorkTrips 主要影响工匠买材料、卖成品等本职交易次数。
    • supplyTargetMultiplier / scaleSupplyTarget 主要影响农民种子、食物等补给目标。
    • hoardingTendencyMultiplier 让低慷慨、高冒险、高聪明的实体更容易囤积或恐慌备货。
    • buyPriceSensitivityMultiplier 让慷慨和冒险提高高价接受度,聪明会让实体更谨慎。
    • merchantSearchRangeMultiplier 让更聪明、更合群的实体检查更大范围的商人。
    • arbitrageProfitMultiplier 让更聪明、更敢冒险的实体接受更低利润门槛,保守或节俭倾向会要求更高利润。
  3. 社交和显示同步更新
    • 傍晚社交不再直接判断 Personality.FRUGAL 等枚举,而是根据连续属性判断节俭倾向、挥霍倾向、孤僻倾向和合群倾向。
    • 对话类型仍会映射到合群、孤僻、节俭、挥霍这些可读倾向,避免翻译和台词系统失去语义。
    • 实体信息界面会显示主倾向以及 5 个维度数值,方便观察每个实体的个性差异。

新手教程书

  1. 教程书扩展到 16 页
    • TutorialBookScreen 从 10 页扩展到 16 页。
    • 新增货币兑换、NBT 物品、价格和经济数据、职业经济链、性格囤积套利、日志社交等章节。
    • 旧的“放绿宝石启动经济”说明改为“镇货币”,避免和可配置货币系统冲突。
  2. 中英文教程同步
    • zh_cn.jsonen_us.json 同步补齐 gui.betterworld.tutorial_book.page_11page_16
    • 后续新增玩家可见系统时,教程书页数、中文翻译和英文翻译需要一起更新。

版本:1.0.4 采购意向、价格信号和经营日志修正

经济系统

  1. 新增城镇级采购意向

    • 新增 TownblockEntity.PurchaseIntent,用于记录镇内实体对某商品的持续采购需求。
    • 工匠会根据工坊配方材料缺口登记或续期采购意向。
    • 材料库存恢复后会撤销对应采购意向,避免幽灵需求。
    • 商人日结时读取镇内采购意向,并把它折算进目标库存和收购意愿。
    • 采购意向不直接给实体发货,也不直接推动出售价上涨。
  2. 修正缺货涨价螺旋

    • 出售价涨价现在只由真实成交 todaySold > 0 触发。
    • unmetBuyDemand 仍然影响目标库存和收购意愿,但不会单独让出售价上涨。
    • purchaseIntentDemand 也只影响补货,不参与出售价涨价。
    • 如果库存为 0 且一直没人成功买到,出售价会走无成交回落逻辑,避免越缺货越涨、越涨越买不到。
  3. 继续保持收购价和出售价独立

    • 没有恢复固定价差保护。
    • 出售价不会因为收购价高而被硬性抬高。
    • 收购价和出售价仍按各自基础价、成交历史、库存和需求信号独立调整。
  4. 经济 GUI 同步修正

    • 交易成功、缺货失败、买不起、商人收不起货都会触发方块实体同步。
    • 修复日志已经记录“购买没有库存”,但经济数据页压力仍显示 0 的问题。
    • 经济数据页压力行新增“采购意向”。
    • 价格变化显示改为“较昨日”,不再用“当前价 - 基础价”当涨跌。
  5. 玩家 GUI 失败信号限流

    • 玩家在商人 GUI 中反复点击导致的失败信号会被限流。
    • 防止通过狂点刷 unmetBuyDemand / unaffordableDemand

日志

  1. 商人每日经营总结改为当天收工时写入

    • 新增 MerchantBusinessSummaryTask
    • 商人在 MerchantCloseGoal 收工流程中写入当天经营总结。
    • 不再由跨天经济结算写入经营总结,避免看起来像昨天的账。
    • 总结内容包括买货花费、卖货收入、净收入、热销商品、主要收购物品。
    • MerchantblockEntity 保存 LastBusinessSummaryDay,避免同一天重复写。
  2. 价格日志仍保留在日结

    • 价格变化发生在跨天结算时,所以收购价/出售价调整日志仍由 settleEconomyDay 写入。

职业行为

  1. 农民交易条件修正

    • 只有身上有小麦时,农民才会执行卖小麦交易。
    • 买种子和买食物要求身上有 money。
    • 减少“家里有小麦但身上没小麦,于是空跑卖货”的情况。
  2. 工坊买材料提前触发

    • 工坊买材料不再等到低于 1 批配方材料才触发。
    • 当前低于目标材料库存的一半就会提前补货。
    • 目标材料库存仍按 WORKSHOP_TARGET_CRAFT_BATCHES 计算。
    • 实际购买量仍受预算、价格弹性、商人库存和失败冷却限制。
  3. 资源工出售增加节流

    • 资源工成功出售一轮后会进入 resource.sellSuccessCooldownTicks 冷却,默认 1200 tick。
    • 资源工平时至少攒到 resource.sellMinBatch 个资源产物才会出门卖,默认 8。
    • 临近收工时 time >= 10000 会允许小批量出售,避免把零散资源带到晚上。
    • 失败出售仍使用原有失败冷却,减少找不到买家或商人收不起货时的反复尝试。

版本:1.0.3 经济公式、资源点和食物交易修正

经济系统

  1. 修正低销量商品价格被放大的问题

    • 商人目标库存不再简单使用 clamp(todaySold * 2, minTargetStock, maxTargetStock)
    • 没有销量时,不会凭空产生补货需求。
    • 低销量商品使用软最低库存,例如只卖出 1 个时目标库存约为 5,而不是强制 16。
  2. 价格涨跌改为程度式

    • 出售价不再是“库存低于目标一半就固定每天涨 20%”。
    • 当前按缺货程度上涨:轻度缺货小涨,中度缺货中涨,重度缺货才大涨。
    • 库存过剩时也按过剩程度降价。
  3. 新增均衡容忍区

    • stock / targetStock0.8 - 1.2 之间时,出售价不再继续涨跌。
    • 均衡区内价格会轻微向基础价回归。
    • 已模拟验证:每天卖 1 个、补 1 个,库存稳定在目标 80% 时,出售价不再慢性爬升。
  4. 优化收购价回落

    • 不需要补货时,收购价不再瞬间跳到最低值,而是逐步向低需求价回落。
    • 需要补货时,收购价按补货压力上涨,今天已收到货会缓和上涨压力。
  5. 同步更新经济文档

    • economy.txt 顶部已补充 2026-05-06 当前有效经济规则。
    • 旧文档中关于固定最低目标库存、固定 20% 涨价、1.5 倍才降价的描述已经过期。

资源点和资源工

  1. 资源点产物不再直接塞进资源工背包

    • 资源点生产物现在进入资源点工作范围内的容器。
    • 避免资源工睡觉时被远程加入物品,导致躺着去处理产物。
  2. 资源点容器满时暂停产出

    • 如果工作容器没有空间,生产进度会停在完成状态等待空间。
    • 不再直接丢失产物,也不再绕过工作流程。
  3. 新增资源工上班取货流程

    • 新增 ResourceInventoryGoal
    • 资源工早晨会去工作地点,从资源点容器中取出资源规则产物。
    • TakeItemTask 新增 RESOURCE 来源,复用统一取物任务结构。
  4. 资源工收工存放规则

    • 非货币物品存回资源点工作地点容器。
    • money 仍然存回家中容器。

食物购买和交易

  1. 降低食物购买抢占职业工作的概率

    • FoodSupplyGoal 优先级已低于主要职业工作目标。
    • 食物生产职业只在更紧急饥饿时购买食物,避免面包工反复买食物、停工。
  2. 限制单次食物购买数量

    • 单次买食物上限降低为 3。
    • 避免实体一次想买大量食物导致钱不够、反复失败。
  3. 支持钱不够时部分购买

    • 交易会按实际可支付金额缩小购买数量。
    • 例如想买 8 个但钱只够 3 个时,会尝试买 3 个。

编译状态

  • 最近一次检查命令:.\gradlew.bat compileJava
  • 结果:BUILD SUCCESSFUL

补充更新

  1. 补上更多市场需求信号
    • 新增“想买但没货”需求记录,用于修正第二天的补货判断。
    • 新增“想买但买不起”记录,在库存充足时可作为降价参考,而不是一直把高价误判成高需求。
    • 新增“想卖但商人没钱收”记录,避免只统计成功交易导致判断失真。
  2. 收购价和出售价不再强制挂钩
    • 去掉“出售价必须高于收购价”的硬限制。
    • 两边价格改为各自根据库存、需求、购买力和历史数据独立调整,更接近真正的动态市场。
  3. 修复商人高价锁死与满仓不收的问题
    • 针对“库存正好满、价格却极高、面包工卖不出去、消费者又买不起”的冻结场景补强了日结算信号。
    • 减少库存阀门和价格信号脱节后,整个商品链条一起卡死的情况。
  4. 交易失败后支持换其他商人
    • 农民、工匠、资源工和通用交易任务在合适的失败原因下,会继续尝试其他候选商人。
    • 不再因为第一个商人没货、没钱或条件不合适,就整次行动直接报废。
  5. 商人经济数据页改为看历史波动
    • 弱化“今日交易量”和“预计明日价格”这种同步意义不大的字段。
    • 改为更偏向展示近几天收购价、出售价的波动情况,方便直接看趋势。
  6. 价格删为 0 时同步清理经济显示
    • 某个商品在商人价格表中被删掉后,经济数据页也会同步隐藏该商品,不再残留无效历史项。
  7. 税收默认关闭,并接入镇方块金库
    • trade.taxRate 默认改为 0.0
    • 如果开启税率,税款会进入商人绑定的镇方块金库,而不是直接从经济里蒸发。
    • 绑定镇方块的“公务员”实体会按天尝试领取 10 money;没有金库数据或余额不足时不会发放。
  8. 方块权杖交互更省力
    • 为了不和原方块 GUI 冲突,绑定操作改为更偏向潜行右键。
    • 清除权杖缓存状态改为单独手势,不需要在两个方块之间反复来回试。
  9. 聊天与日志补充
    • 新增更多交易、失败和状态变化日志。
    • 聊天内容开始读取真实商品价格与波动信息,看起来更像实体在讨论当前市场,而不是固定台词。

版本:1.0.2 (很多地方我没测试到,也许功能有问题,告诉我)

后续 AI 生活节奏补充

  1. 新增傍晚闲逛与偶遇聊天

    • 实体在收工、把身上物品和钱放回家后,若背包为空,会在睡觉前进入傍晚闲逛。
    • 闲逛流程拆为 WANDER -> PAUSE -> APPROACH -> CHAT,遇到同样停下的实体时会靠近聊天。
    • 聊天期间双方会停下并面朝彼此,不会继续闲逛;睡觉、恐慌等更高优先级任务开始时会及时终止聊天会话。
    • 聊天会根据关系值和性格使用不同台词,并通过 DialogueBroadcaster.near 只广播给附近玩家。
    • 新增聊天配置:chat.baseRelationGainchat.chatDurationMinSecondschat.chatDurationMaxSecondschat.chatCooldownMinuteschat.maxChatsPerWander
  2. 新增通用回家清空目标

    • 新增 HomeCleanupGoal,所有职业在晚上都会尝试把身上剩余物品和钱放回家。
    • 工匠仍会优先把蓝图相关材料和产物放回工坊,之后再把非蓝图杂物和钱放回家。
    • 资源工现在晚上也会回家存资源和钱,清空后才能加入傍晚闲逛。
    • HomeCleanupGoal 只在 12000 到 18000 之间触发,不会抢占睡觉任务。
  3. 修复睡觉错位和床边地板睡问题

    • 睡觉前优先尝试绑定床位。
    • 如果因为墙、门口、寻路落点或床头床尾错位导致没有直接站到床上,会在当前位置约 2 格范围内扫描真实床并自动上床。
    • 只有附近确实没有可用床时,才允许原地睡觉作为兜底。
    • 睡觉目标不再把家方块坐标直接当作床位,减少跑到家方块旁边错位睡觉的情况。
  4. 扩展农民食物携带和购买逻辑

    • 吃东西逻辑继续支持所有 item.isEdible() 的食物,并优先吃营养值更高的食物。
    • 农民早上不再只从家里拿面包,改为从家中容器拿任意可食用物品。
    • 农民买食物时不再用面包硬编码选择商人,而是通过 FoodPolicy.chooseFoodToBuy() 在商人出售的可食物中选择。
    • 默认可购买食物取决于商人出售价格和库存;默认配置中面包、胡萝卜、土豆可作为食物购买候选。

    社交系统深化补充

  5. 新增聊天话题系统

    • 傍晚聊天现在会为每一场会话选择一个固定话题,聊天过程中会穿插对应内容。
    • 话题会参考双方职业与性格,例如农民之间更容易聊收成和种子,农民与商人更容易聊小麦价格,工匠与商人会聊材料,资源工与商人会聊资源需求。
    • 节俭性格更容易把话题带向物价和七天均价,挥霍性格更容易聊食物和享受。
    • 话题文本仍然走 DialogueCatalog 和中英文翻译键,不直接硬编码到任务逻辑里。
  6. 新增高好感送礼

    • 当双方好感度达到配置阈值后,聊天结束时有概率从自己背包中送出小物品。
    • 当前候选礼物包括面包、种子、小麦、胡萝卜、土豆、甜菜等轻量物资。
    • 送礼会真实扣除赠送者背包物品,并加入接收者背包;如果赠送者没有合适物品则不会凭空生成。
    • 新增配置 chat.giftRelationThresholdchat.giftChance 控制送礼门槛与概率。
  7. 新增社交日志

    • 完整聊天后会记录活动日志,说明和谁聊了什么话题,以及好感度是提升、下降、持平还是已接近关系容量。
    • 聊天不愉快导致好感下降时会写入负面社交日志。
    • 试图聊天但对方因为孤僻、关系冷淡、刚聊过或没心情而拒绝时,会低频记录拒绝原因,避免刷屏。
    • 送礼和收礼也会分别写入双方活动日志,方便玩家在信息书里追踪关系变化来源。

性格关系系统与恋爱事件

  1. 新增 Steve 性格
    • 每个 Steve 会随机获得合群、孤僻、节俭、挥霍之一。
    • 性格会保存到 NBT,旧存档实体会自动补一个随机性格。
    • Steve 信息书会显示性格。
  2. 性格影响交易与经济行为
    • 合群:交易频率 +20%,囤积倾向 -30%,比价范围更大,关系容量更多。
    • 孤僻:交易频率 -20%,囤积倾向 +30%,比价范围更小,关系容量更少。
    • 节俭:交易频率正常,囤积倾向 +50%,买入价格更敏感,比价范围更大。
    • 挥霍:交易频率 +10%,囤积倾向 -50%,买入价格更不敏感,比价范围更小。
  3. 接入位置
    • 农民每日交易意图会按性格调整阈值。
    • 工匠每日买材料和卖成品次数会按性格调整。
    • 囤积策略会按性格调整触发、数量和保留闲钱。
    • 商人比价范围和买入价格过滤会按性格调整。
    • 关系记录容量会按性格调整,超过容量时保留关系值更高的对象。
  4. 不同好感度下的交易对话
    • AI 与 AI 交易时,会根据双方关系值使用不同对话。
    • 玩家与商人交易时,商人也会记录玩家关系,并按关系值切换对话。
    • 当前分为三档:冷淡、普通、友好。
    • 关系值小于等于 -10 时使用冷淡台词,关系值大于等于 20 时使用友好台词,其余使用普通台词。
    • 对话仍然通过 DialogueCatalog 和 DialogueBroadcaster.near 管理,只广播给附近玩家。
  5. 新增关系类型
    • Steve 之间的关系数据从单纯好感值扩展为 类型 + 好感值 + 好感档位
    • 当前关系类型包括:陌生人、朋友、恋人、配偶、亲子。
    • 关系类型保存到 SteveEntityRelationships NBT 中,旧存档没有类型时默认按陌生人处理。
    • 普通关系会随好感自动在陌生人与朋友之间变化;恋人、配偶、亲子这类特殊关系不会被自动覆盖。
  6. 新增七档好感度
    • 新增 RelationshipTier,按关系值划分为:
      • 7 档:热忱,>= 80,更容易主动聊天,送礼概率更高。
      • 6 档:亲近,60 - 79,积极聊天,偶尔送礼。
      • 5 档:善意,30 - 59,正常交易和聊天。
      • 4 档:平淡,10 - 29,礼貌但保持距离。
      • 3 档:生疏,-9 - 9,无额外互动。
      • 2 档:冷淡,-29 - -10,拒绝聊天,交易意愿降低。
      • 1 档:冷落,<= -30,拒绝聊天和交易。
    • AI 交易、玩家与商人交易、傍晚聊天意愿和送礼概率已经接入好感档位。
    • 信息书关系页现在分两行显示关系对象、好感档位、具体关系值和关系类型,例如“与 Alex:亲近(72)/ 关系:恋人”。
  7. 新增恋爱事件
    • 新增 RomanticConfessionTask,用于处理傍晚社交后的表白事件。
    • 触发条件:双方好感都 >= 60,并且双方都单身。
    • 触发时机:傍晚聊天完整结束后,有概率尝试表白。
    • 表白成功后,双方关系类型会变为恋人。
    • 表白失败后,双方好感各降低 5 点。
    • 恋人关系下,聊天额外增加 1 点好感,送礼概率额外提高。
    • 表白成功和失败都会写入双方活动日志。
  8. 新增恋爱退出机制
    • 新增 RomanticBreakupTask,用于处理恋人关系恶化后的分手。
    • 当恋人关系降到冷淡或冷落档位时,会在傍晚社交检查中触发分手。
    • 分手后双方关系类型强制回到朋友,并额外降低 25 点好感。
    • 恋人处于善意以下时,不再触发亲密行为:不会获得恋人聊天额外好感,也不会使用恋人送礼加成。
    • 分手会写入双方活动日志,避免恋人关系变成没有出口的单程状态。

配置与经济参数整理

  1. 统一配置文件
    • 旧的 BetterWorldAIConfig 已整理为 Config。
    • 生成配置文件名改为 betterworld.toml
    • 交易税默认值调整为 0.30。
  2. 暴露经济波动参数
    • 目标库存倍数、最小目标库存、最大目标库存已进入配置。
    • 收购价和出售价的最低/最高倍率已进入配置。
    • 收购价每日涨跌幅上下限已进入配置。
    • 出售价库存高低阈值和价格历史天数已进入配置。
  3. 库存满后抑制价格飙升
    • 商人达到目标库存后不再继续收购该物品。
    • 日结算时根据当前库存动态调整需要收购量,库存足够时收购价会回落。
    • 资源工、工匠、农民出售商品时会受到商人剩余收购容量限制。

文档

  1. 新增 economy.txt
    • 记录当前经济系统的实际运行机制。
    • 包括价格波动、库存目标、交易税、商人比价、囤积策略和性格对经济行为的影响。
  2. 更新 read.txt
    • 补充性格系统、关系容量、配置文件名和经济系统说明。

版本:1.0.1

AI 调度与寻路优化

  1. 优化职业事件优先级
    • 早晨准备优先级提高,确保农民、商人、工匠优先完成取钱、取材料、补货等上班前准备。
    • 通用买食物逻辑不会在早晨准备完成前抢跑,避免实体没取钱就先跑去买食物。
    • 囤积交易推迟到白天中后段触发,让实体先完成职业主流程,再利用空闲时间做经济机会交易。
  2. 修复吃饭回家问题
    • 实体现在会直接从随身背包原地吃食物。
    • 不再因为饥饿而先回家再吃,减少无意义往返。
  3. 增强复杂道路寻路稳定性
    • 优化了寻路,大概吧

经济系统

  1. 新增价格波动

    • 商人会记录今日收购量、今日出售量、昨日交易量和库存。
    • 每天结算一次价格,根据需求、库存和昨日交易情况调整收购价与出售价。
    • 出售价会保护为高于收购价,避免商人长期亏本套利。
  2. 新增 7 天价格历史

    • 商人方块会保存每件商品最近 7 天的收购价和出售价。
    • 这些历史价格可用于计算平均价格,并支持后续经济策略。
  3. 新增囤积策略

    • 非商人实体会在低价并且价格开始上涨时尝试买入囤积。
    • 当价格高于 7 天平均价且开始下跌时,会尝试卖出家中库存。
    • 囤积最大数量、保留闲钱、单次交易数量和失败冷却都可以在配置中调整。
  4. 新增交易税

    • 每次交易由买方支付基础价格之外的交易税。
    • 税率可在配置 trade.taxRate 中调整。
    • 当前税款会从经济中移除,后续可扩展为城镇税收或公共金库。
  5. 优化商人选择

    • 实体买入商品时,会通过城镇内商人价格选择更低出售价的商人。
    • 实体卖出商品时,会优先选择收购价更高的商人。

AI 与交易修复

  1. 修复交易失败后反复尝试

    • 当商人没钱、没库存、没有对应价格或找不到商人时,实体会进入冷却。
    • 避免实体不断寻路到无法完成交易的商人处。
  2. 修复面包工套利问题

    • 食物生产职业不会因为通用食物逻辑反复购买自己生产的食物。
    • 工匠出售食物产物时会保留一部分可食用库存,避免全部卖掉后马上再买。
  3. 扩展食物策略

    • 实体不再只认面包,会根据商人出售的可食用物品选择食物。
    • 吃饭逻辑也支持多种可食用物品。
  4. 新增交易失败日志

    • 实体尝试交易失败时,会记录失败原因。
    • 例如:自己没钱、商人没库存、商人没钱、没有对应价格等。

GUI 与显示

  1. 商人方块新增经济数据页面

    • 显示当前收购价、当前出售价、昨日价格、价格趋势、今日已收购、今日已出售、库存和预计明日价格。
  2. 优化商人 GUI 布局

    • 扩大商人主界面宽度。
    • 调整价格设置页面高度、按钮位置和玩家物品栏位置,减少重叠。
    • 优化经济数据页面文字间距和颜色,提高可读性。
  3. 物品显示名称优化

    • 商人价格列表不再显示物品 ID,而是显示物品名称。
    • 资源点规则页面不再直接输入物品 ID,改为使用物品槽确认。
    • 资源点规则列表显示物品名称。

日志系统

  1. 合并重复日志

    • 同一天内重复发生的购买、出售、收割等日志会合并统计。
    • 避免出现“买了一个面包”重复刷满整页的情况。
  2. 修复日志分页

    • 当一天日志太多时,会按显示行数分页。
    • 不会再因为一页放不下而吞掉后面的日志。

新手教程书

  1. 新增教程书物品

    • 右键打开教程书 GUI。
    • 支持翻页。
    • 中英文内容已同步,可继续在语言文件中扩展教程文本。
  2. 补充教程内容

    • 介绍家方块、农场方块、商人方块、工坊方块、资源点方块、城镇方块等核心方块。
    • 介绍基础物品和快速搭建一个文明的流程。

配置与项目

  1. 新增经济相关配置

    • 交易税率。
    • 囤积策略开关。
    • 最大囤积量。
    • 保留闲钱。
    • 单次囤积交易数量。
    • 囤积失败冷却时间。
  2. 许可证调整

    • 项目许可证改为 MIT License。

版本:1.00

初始核心玩法

  1. 基础 AI 架构

    • 建立 Sensor -> Memory -> Goal -> Plan -> Task 的 AI 分层结构。
    • Sensor 负责周期性扫描环境。
    • Memory 缓存家方块、工作方块、商人方块、床、容器等信息。
    • Goal 判断当前目标。
    • Plan 组织任务链。
    • Task 执行移动、取物品、存物品、交易、睡觉、吃饭等具体动作。
  2. Steve 实体

    • 支持职业、年龄、金钱、背包、关系和活动日志。
    • 支持绑定家方块与工作方块。
    • 支持通过信息书查看实体状态、关系和日志。

职业系统

  1. 农民

    • 早上从家中取种子、农产品、面包和钱。
    • 白天巡田、种植、收割。
    • 可向商人出售小麦,并购买种子和食物。
    • 晚上将农产品和钱存回家中。
  2. 商人

    • 早上从家中取钱并从工作容器补货。
    • 白天在商人方块附近营业。
    • 支持收购和出售商品。
    • 晚上将商品存回商人工作点容器,并把钱带回家。
  3. 工匠 / 工坊

    • 工匠可以从工坊容器取材料。
    • 按工坊配方加工物品。
    • 缺材料时向商人购买。
    • 加工完成后可将成品出售给商人。
  4. 资源工 / 资源点

    • 资源点可配置产出规则。
    • 绑定实体后,资源点按规则周期性产出物品到实体背包。
    • 资源工会尝试将产物卖给商人。
  5. 守卫占位

    • 已添加守卫职业基础结构。
    • 守卫玩法仍待后续扩展。

方块系统

  1. 家方块

    • 绑定家中容器和床位。
    • 支持实体早晚存取钱和物品。
  2. 农场方块

    • 提供农民工作区域。
    • 支持农民巡田、种植和收割。
  3. 商人方块

    • 管理商人绑定、交易范围、商品价格、库存和工作容器。
    • 支持玩家与 AI 交易。
  4. 工坊方块

    • 管理工坊容器和配方列表。
    • 支持玩家通过 GUI 修改工坊配方。
  5. 资源点方块

    • 管理资源产出规则。
    • 支持设置范围、预览区域、确认区域和绑定实体。
  6. 城镇方块

    • 用于组织一定范围内的家方块和工作方块。
    • 为后续村庄级经济和居民分配打基础。

交易与金钱

  1. 实体数字货币

    • AI 的 money 是实体身上的数字货币。
    • 早上从容器绿宝石转换为实体 money。
    • 晚上将实体 money 转回绿宝石存回容器。
  2. 交易系统

    • 实体之间会相互交易。
    • 会根据交易导致商品价格波动。

日志与对话

  1. 活动日志

    • 实体会记录成为职业、收割、交易、加工、资源产出等事件。
    • 信息书中支持分页查看日志。
  2. 关系系统

    • 交易成功会增加双方关系。
    • 信息书中可查看关系信息。
  3. 附近对话广播

    • AI 交易和玩家交易会触发附近玩家可见的对话。

配置与翻译

  1. AI 配置

    • 支持通过 Forge config 调整 AI 参数、默认商人价格和默认工坊配方。
  2. 中英文翻译

External resources


Project members

xxxx_62669

Member


Technical information

License
MIT
Client side
required
Server side
required
Project ID