本篇适用于 Valemetry 1.1.1。命令和配置会随版本演进;使用旧版本时,请先确认版本。文中示例只修改指定项目,不会自动解锁全部商品或生成金钱。
配置文件
- 只想调整配色、圆角、透明度或背景:打开终端右上角的设置,进入“通用设置”。
- 想调卖出返还比例、每日交易限额或成交时间:进入“交易设置”。这些规则对当前世界统一生效。
- 想改某种物品的价格、禁止交易或批量配置:使用本篇的 /valem 命令与两个 JSON 文件。
价格修改会影响当前实例或服务器的物品经济。先备份两个 JSON,再做小范围修改并核对结果;不要直接拿不确定的整合包配置覆盖现有文件。
文件位置与生效
这里的 config 指当前游戏实例或服务器根目录中的 config 文件夹,不一定是系统默认的 .minecraft。整合包启动器通常为每个实例单独保存配置。
config/
├── valemetry/
│ ├── item_values.json
│ ├── item_bans.json
│ └── background-….png
└── valemetry-client.toml| 文件 | 用途与生效范围 |
|---|---|
| valemetry/item_values.json | 物品基础价格与明确清除价格。单人按实例共享,多人由服务器决定。 |
| valemetry/item_bans.json | 禁止买卖的物品名单,与价格文件使用相同作用范围。 |
| valemetry-client.toml | 本机外观、排序和部分界面偏好,不保存余额或服务器交易规则。 |
| valemetry/background-….png | 导入背景后自动生成的本地图片副本,备份外观时一起保留。 |
先进入一次世界或启动服务器,让模组初始化价格配置,再去找两个 JSON。文件不存在时会生成默认文件;已有文件不会被默认内容覆盖。多人游戏要改服务器端文件,修改自己的客户端副本不会改变服务器报价。
编辑、保存、生效
- 用纯文本编辑器打开 JSON,先复制一份备份。不要用 Word 等富文本编辑器。
- 保留 UTF-8 编码及准确文件名。确认文件没有变成 item_values.json.txt。
- 按下文格式修改并保存,再由有权限的人执行 /valem reload。
- 查看命令返回信息,再查询目标物品的价格和禁售状态。
两个经济 JSON 按实例/服务器共享;“交易设置”中的比例、额度和耗时则跟随各自世界存档。它们不是同一套文件,/valem reload 也不是重新加载所有设置的通用开关。
物品价格
item_values.json 的最外层是对象 {}。每项左边是带英文双引号的 ID,右边是无需引号的数字;项目之间用英文逗号,最后一项后面不加逗号。
{
"minecraft:diamond": 1200,
"minecraft:iron_ingot": 32.5,
"minecraft:elytra": 0
}- 1200 和 32.5 是每件物品的基础买入单价。卖出返还额由世界的卖出比例进一步计算。
- 0 表示明确移除该 ID 的价格,并阻止它再次通过配方推导出价格,不是免费购买。
- 文件里没有写到的物品,继续使用内置或受支持配方推导的价格;无法推导时保持无价格。
- 把整个文件写成 {},表示没有手动覆盖,不会清空内置价格。删除文件会在下次加载时重新生成默认配置。
数字怎么写?
支持普通十进制整数或最多两位小数。正价最小是 0.01;例如 100、100.5、100.50。不要加 $、K、M、千位逗号、正负号或科学计数法,也不要把数字放进引号。
例如 "32.5"、-1、1e3、0.001、01、null 都不合法。同一价格文件不能重复定义同一个 ID;diamond 与 minecraft:diamond 也会被视为重复。minecraft:air 不能定价或清除。
明确无价格、被禁售、没有解锁,是三个不同状态。即使价格设置成功,玩家仍要先成功卖出一次该物品,才会解锁之后的购买。
禁售名单
item_bans.json 使用数组 [],每一项是物品 ID 字符串。名单中的物品不能买入或卖出,禁售优先于手动价格与配方推导。
[
"minecraft:emerald",
"minecraft:emerald_block"
]首次生成的默认名单包含绿宝石和绿宝石块。想取消全部额外禁售,请保存空数组 [];不要删除文件,否则下次加载会重新生成默认名单。重复的禁售 ID 会去重,但建议每个只写一次。
手动文件中同时出现“禁售”和“固定价格”时,仍然禁售;解除禁售后,价格结果取决于 item_values.json 中是否还保留设价或 0 清除指令。
调整世界交易规则
打开终端的“设置 → 交易设置”。单人世界拥有者可编辑;多人服务器需要管理员权限。这些规则保存在世界中,对该世界所有玩家统一生效,不放在 item_values.json 或客户端 TOML 中。
| 设置 | 用法 |
|---|---|
| 卖出返还比例 | 0%–100%,默认 100%。基础买入价 $100、返还比例 80% 时,正常卖出一件返还 $80。金额按分计算;极低比例不保证每件仍有正数返还。 |
| 每日交易限制 | 不限制、按笔数、按金额三选一,默认不限制。以世界日为周期、按玩家累计,不因切换个人/团队钱包而重新获得额度。 |
| 单笔成交耗时 | 0–5 秒,步进 0.1 秒,默认 0 秒即时。买入与卖出共用;游戏运行变慢时,现实等待可能更长。 |
调整后点击“保存设置”,即可保存到当前世界,无需 /valem reload。取消则不提交。多人同时编辑时,如果别人已经先保存,请重新打开设置读取最新内容再修改。保存新规则会取消仍在等待的物品交易,请在调整后重新核对订单。
本章描述物品市场的交易规则,不是股票价格模型的配置入口。当前 /valem 命令没有股票买卖、修改模拟周期或增发余额的子命令。
外观与客户端配置
配色、圆角、透明度和背景优先通过“设置 → 通用设置”修改:可以即时预览,点击应用/保存后持久化,取消则返回之前保存的外观。这里只改变自己的显示,不影响队友或服务器价格。
手动编辑 valemetry-client.toml
需要手工编辑时,先完整退出游戏并备份文件,再修改、保存、重新启动。不要在游戏运行时反复改这个文件;/valem reload 不会刷新客户端外观缓存。下面是默认字段示例,不是要求覆盖你已有的收藏与偏好。
[catalog]
sort = "ADDED"
ascending = false
[terminal]
lastTools = []
[stocks]
watchlists = []
buyByAmount = true
sellByAmount = false
[appearance]
accent = 2152939
backgroundOpacity = 95
backgroundImage = ""
backgroundFocusX = 0.5
backgroundFocusY = 0.5
style = "CLASSIC"| 字段 | 取值与意义 |
|---|---|
| catalog.sort | "ADDED" 解锁顺序、"PRICE" 价格、"TRADES" 个人交易次数;默认 "ADDED"。 |
| catalog.ascending | true 正序/升序,false 反序/降序;默认 false。 |
| terminal.lastTools | 默认 [],自动记录每个世界/玩家上次工具页。推荐通过终端切换,不手写身份记录。 |
| stocks.watchlists | 默认 [],按世界/玩家保存股票收藏。请通过收藏按钮维护,不要复制其他玩家的记录。 |
| stocks.buyByAmount | true 按金额买入,false 按股数;默认 true。 |
| stocks.sellByAmount | true 按金额卖出,false 按股数;默认 false。 |
| appearance.accent | RGB 十进制整数,范围 0–16777215,默认 2152939(#20D9EB)。在 TOML 中不要写成带引号的 "#20D9EB";可直接用界面调色盘。 |
| appearance.backgroundOpacity | 30–100 的整数百分比,默认 95;不支持设为 0。 |
| appearance.backgroundImage | 空字符串表示无背景;否则使用导入功能生成的受管理文件名。不要填写任意本地路径或网站 URL。 |
| appearance.backgroundFocusX / Y | 各为 0–1 的小数,默认 0.5 居中,控制横向/纵向取景。 |
| appearance.style | "CLASSIC" 经典方角,"ROUNDED" 圆润;默认 "CLASSIC"。 |
TOML 中字符串用英文双引号,true/false 不加引号,数字也不加引号;与 JSON 不同,TOML 使用 [分组] 和 key = value,不在每行末尾添加逗号。保留生成文件中的其他已有记录。
自定义背景如何缩放?
导入本地 PNG 或 JPEG,文件不超过 20 MiB、总像素不超过 16,777,216,最长原始边不超过 16,384 像素。导入时会等比缩小至最长边最多 2048,小图不会被放大保存。显示时按窗口比例铺满,超出部分裁切,再用取景位置选择重点,不会把图片拉伸变形。
导入并保存后,模组会在 config/valemetry 中保留受管理的 PNG 副本,只在本机使用,不上传给服务器。备份或迁移外观时,连同 valemetry-client.toml 与对应背景 PNG 一起保留。清除当前背景或恢复默认不会自动清理所有旧图片。
命令
执行命令与权限
谁可以执行命令?
| 操作 | 权限 |
|---|---|
| 查价格、查禁售、查看帮助 | 普通玩家可用。 |
| 修改价格、修改禁售、/valem reload | 需要 Minecraft 权限等级 2。单人需具备命令权限;服务器由管理员执行。 |
| 个人转账、团队和钱包命令 | 必须由游戏内玩家执行。团队管理还会检查队长身份。 |
| 在界面修改交易规则 | 单人世界拥有者或权限等级 2 的管理员。 |
在聊天框输入带 / 的命令并回车。服务器控制台执行价格、禁售和重载命令时通常省略开头的 /;转账和团队命令需要玩家身份,不能直接在控制台执行。
/valem代码框中的示例可直接复制,按需替换物品 ID、玩家名 Alex、队名和金额,保留参数顺序及命令本身。每行是一条独立命令。
准确获取物品 ID
物品 ID 是游戏识别物品的内部名称,通常写成“模组命名空间:物品名”,例如 minecraft:iron_ingot。中文显示名、模组页面上的英文标题,都不能直接当作 ID。
- 在当前世界输入 /valem price show,再输入一个空格。
- 输入 minecraft: 或目标模组的命名空间,查看游戏给出的物品建议,用 Tab 补全实际存在的物品。
- 回车查询。即使该物品还没有价格,也可以从当前注册物品中选取;把完整 ID 复制进配置。
安装了某个模组,并不代表它的所有历史 ID 或联动物品都存在。Minecraft 版本、模组版本和可选联动会影响实际物品列表。不要按照英文翻译自行拼写 ID。
配置是按物品 ID,不是按物品状态
JSON 键只接受单个物品 ID,不接受 #forge:ingots/iron 这样的标签、modid:* 通配符、中文名称或带 NBT 的字符串。命令中即使输入可解析的 NBT,最终也只按注册 ID 操作,不能给同一种物品的不同品质、药水内容或附魔分别定价。
定价成功不等于任何状态的该物品都能出售。额外数据、容器内容、附魔等仍需通过交易安全检查;手动定价不会绕过这些规则。支持的耐久物品可按剩余耐久折价,并非所有带状态的物品都一概拒绝。
价格命令
查询物品价格
查看当前基础价格与来源,也能区分禁售、明确清除及尚无价格。普通玩家可用;它不是按返还率计算后的卖出报价。
/valem price show minecraft:iron_ingot设置物品价格
管理员设定正数价格并自动重算。若该物品被禁售,需要先解禁;set 不接受 0。
/valem price set minecraft:iron_ingot 32.5清除物品价格
管理员把该物品设为“无价格”,对应 JSON 中的 0。
/valem price clear minecraft:elytra恢复自动定价
管理员删除该物品的手动设价或清除指令,让内置与配方定价重新决定结果。它不会解除禁售,也不保证重置后一定有价格。
/valem price reset minecraft:iron_ingot通过命令成功修改后通常已经自动生效,不必再执行 reload。直接编辑 JSON 后才需要手动重载。调整原料价格可能影响由它继续推导的其他商品;保存后要同时检查相关产物。
禁售命令
禁止物品交易
管理员禁止该物品交易。这个命令还会删除该物品已有的手动设价或清除指令;直接编辑禁售 JSON 则不会自动改价格文件。
/valem ban add minecraft:emerald解除物品禁售
管理员解除禁售并重算。不会恢复先前被 ban add 删除的手动价;需要时再执行 price set。
/valem ban remove minecraft:emerald查询禁售状态
普通玩家检查某物品是否被禁售。未禁售不等于已有价格或已解锁。
/valem ban check minecraft:emerald查看禁售名单
普通玩家查看按 ID 排序的有效禁售名单,每页 8 项。在 list 后加空格和页码可翻页;省略时显示第 1 页。页码从 1 开始,超出范围会提示错误。
/valem ban list重载与常见错误
应用配置文件修改
管理员重新读取两个经济 JSON,并用已有配方重算价格。无需重启,也不需要执行原版 /reload。此命令不会刷新外观配置或修改股票模拟规则。
/valem reload怎样判断成功?
先看返回消息,再执行 price show 与 ban check。存在被跳过的未注册正价条目时,其他有效配置仍可应用,并附带警告;不要把出现任何提示都当成整次失败。
| 情况 | 结果 | 处理方法 |
|---|---|---|
| 合法 ID 格式,但当前未注册,且设置合法正价 | 跳过该条,保留文件内容,其他有效配置可应用。 | 核对当前版本的实际 ID 或可选模组是否存在。 |
| 未注册 ID 被设为 0 或加入禁售 | 拒绝这次新配置,避免清除或禁售规则意外失效。 | 改为真实 ID,或删除已不再需要的条目。 |
| JSON 语法、根类型、价格数字或重复价格键错误 | 拒绝这次新配置,不会只应用半份。 | 按日志指出的文件和条目修正,再重载。 |
如果当前运行期间已经成功加载过价格,失败重载会继续使用上一次有效结果。本次文件修改并未生效,文件也不会自动恢复。若这次运行从未有过有效目录,物品交易会暂停,修复后可直接重载恢复。
“保留上一次有效结果”只在当前运行内存中成立,不是磁盘备份。带着错误配置退出世界或重启服务器,不能指望自动恢复旧价格;请先修好文件或恢复自己的备份。
按这个顺序排错
- 确认改的是当前实例或服务器的文件,文件名及扩展名正确,并且已经保存。
- 检查对象 {} 与数组 [] 有没有用反;只用英文双引号和逗号,不加注释、不留末尾逗号。
- 用游戏内物品补全核对 ID,不要按名字猜测。
- 查看执行端 logs/latest.log,搜索 Valemetry、item_values.json 或 item_bans.json,找到文件、条目与原因。
- 一次可能不止一处错误。修完后再次 /valem reload,再查目标价格及禁售状态。
日志中的 item is not registered 表示当前游戏没有注册这个 ID,不是在帮你创建新物品。游戏内总提示会跟随客户端语言,但物品 ID、文件名和底层英文错误原因不会全部翻译。
若命令提示“配置已保存,但重新加载失败”,不要重复盲目设价:先修文件,再 reload。若价格有效但仍无法购买,检查是否成功出售解锁、是否被禁售、余额与交易限额是否足够;无法出售带状态物品时,还要考虑物品安全规则。
个人转账
向玩家转账
把自己的个人钱包余额转给在线玩家的个人钱包。无论终端当前选的是个人还是团队,资金来源都固定为个人钱包。不能转给自己。
/valem pay Alex 100.50金额必须大于 0,最多两位小数,例如 100、100.5、0.01。不接受 all、$100、1K、1,000、负数、0 或科学计数法。转账只移动已有余额,不生成钱,也不转移商品解锁。
目标离线、余额不足、金额无效或收款余额达到上限时,整笔转账失败,不会自动少转一部分。
团队与钱包
每位玩家最多加入一个团队。创建或加入团队不会合并个人余额;选择团队钱包也只是切换交易使用的钱包,不会自动搬钱。
团队成员拥有相同的公款使用权:所有成员都能提款、取出全部公款或向外转账。当前没有队长审批或按个人捐款限制提款的机制,请与可信任的玩家组队。
创建、邀请与加入
创建团队
尚未入队的玩家创建团队并成为队长。队名建议始终使用英文双引号,尤其含中文或空格时。去除首尾空白并规范化后,名称需非空、最多 24 个 Unicode 字符且不含控制字符;重名检查不区分大小写。
/valem team create "晨星工坊"邀请玩家
队长邀请尚未入队的在线玩家,不能邀请自己。邀请有效期为现实 5 分钟;服务器重启后需要重新邀请。
/valem team invite Alex接受邀请
由受邀玩家执行,接受仍有效的邀请。成功加入后,会清除自己的其他待处理邀请。
/valem team accept "晨星工坊"拒绝邀请
由受邀玩家拒绝仍有效的邀请。队名要与邀请对应。
/valem team decline "晨星工坊"查看与管理团队
查看团队信息
查看自己团队的名称、队长、人数与余额;需要已入队。
/valem team info查看团队成员
列出自己团队的成员及队长/成员角色。
/valem team members退出团队
普通成员离队。队长应先转让队长或解散团队;离队不会按贡献自动分配或退还公款。
/valem team leave移除团队成员
队长移除自己团队中的另一名成员。可以针对服务器能够解析身份的离线成员;不能踢自己。
/valem team kick Alex转让队长
队长把队长身份交给队内另一名成员,不是邀请队外玩家。目标可以离线,但必须能被服务器解析。
/valem team transfer-owner Alex解散团队
仅队长可用,团队余额必须先清空至 0。执行成功会解散团队并清除邀请,没有额外的确认子命令。
/valem team disband选择钱包与调拨资金
查看钱包余额
查看个人余额;已入队时还显示团队余额和当前选择。没有团队也可以执行。
/valem team wallet status使用个人钱包
选择个人钱包,不移动资金;未入队也可执行。
/valem team wallet use personal使用团队钱包
选择当前团队的钱包;需要已入队,不会合并钱包。
/valem team wallet use team向团队存款
个人钱包 → 自己团队的钱包。需要已有足够个人余额。
/valem team wallet deposit 500存入全部个人余额
一次转入个人钱包当前全部余额,不是开启自动存款;余额为 0 时无可转资金。
/valem team wallet deposit all从团队提款
自己团队的钱包 → 自己的个人钱包。所有成员都可使用。
/valem team wallet withdraw 200取出全部团队余额
将团队当前全部余额转入自己的个人钱包。所有成员都可使用,操作前请与队友协调。
/valem team wallet withdraw all用团队资金转账
团队钱包 → 指定在线玩家的个人钱包。对方不必是队友,但不能是自己;给自己转账请用 withdraw。
/valem team wallet pay Alex 80.25金额格式与个人转账一致。all 只存在于 deposit 和 withdraw 中,不能写成 team wallet pay Alex all。资金不足或收款方超出余额上限时,整笔操作失败。