● ● ● SCP-FOUNDATION // CONTRACT & FIELD-TASK REGISTRY · 委托 · 事件任务 · DESIGN v0.1 / 未实现

Foundation · Abyss Protocol — Commission & Field-Task System

委托与事件任务图谱

在 S0 接委托、下层完成、回来领请购点 / 材料 / 升级料 / 解锁。是经济(经济系统)的主动收入来源。核心:建在现有任务求值器之上,不重造。设计源 SD_50

对象 委托板 / NPC 委托 / 下层随机事件 更新 2026-06-15 状态 设计阶段 · 代码未起(单元 111–115 计划中)
00

这套委托是什么

接活 → 下层做 → 回来领钱/料/解锁
设计阶段:本页是 SD_50 的玩家视角图谱,目前全是设计、代码未起。徽章以 DevelopmentUnits.md 单元 111–115 为准。

玩家在 S0 接委托 / 事件任务回收 · 调查 · 击杀 · 开启 …),下层完成、回来领 请购点 / 材料 / 升级料 / 解锁。这是经济的一大主动收入核心原则:不重复造系统——委托建在现有任务求值器之上(见 §01)。

已定发放

S0 委托板为主 + NPC 发专属委托为辅 + 下层低概率随机事件 / 角色(§03)。

已定归属

per-player:各接各的、奖励归完成者(与请购点钱包同层);世界解锁型仍归世界(一人解锁全队享)。

已定团队助攻

队友帮打计入(在场参与各自推进)——这块要做扎实(§08)。

顺带补缺口

项目目前没有任务 HUD;委托的"活动追踪"正好补上(§03/单元 113)。

⬜ 111 委托地基 ⬜ 112 全类型+重置/轮换 ⬜ 113 委托板+HUD ⬜ 114 NPC发放+支线小案 ⬜ 115 下层随机事件+护送/解密

01

复用 vs 新增

建在现有任务求值器之上 · 只加薄薄一层

现有任务系统(Quests.csv/Objectives.csv + 求值器 UCSObjectiveDirectorSubsystem)的判定条件已经覆盖委托要的全部动词——委托层只加 4 样,不碰主线/支线的一次性推进逻辑。

复用(不重写)

ConditionType(Interact/CollectItem/KillCount/ReachVolume/RepairCount/HoldTimer) + 求值器 Notify* 钩子 + ApplyObjectiveEvent 发奖路径 + CSV 单源 + 节点图工具。

① 可重复 + 重置

现有任务一次性(Completed 不再武装);委托加 ResetType(Daily/Session/Never) + MaxCompletions + 委托板轮换。

② 经济奖励

现有任务能发物品/解锁,没货币;委托加请购点奖励,且发给完成者本人(不是全队)。

③ 发放 + 交付 ④ per-player

现有任务靠世界状态自动激活、无"接受";委托加委托板/NPC 发放 + 接受 + 回 S0 交付 + 每人独立进度。

一句话:主线靠世界状态自动推进、委托靠玩家主动接取重复刷、支线小案是一次性故事(SD_48,走现有 Quest Side/Hidden)——三者共用同一套判定机器
02

委托类型

玩家动词 → 现有 ConditionType(基本不用新写求值)
回收 / 收集CollectItem
把指定物资带回 S0 交付换奖(塔科夫式 hand-over);或攒够某材料。
击杀KillCount
清掉某遭遇组 N 个 → 达数自动完成。
调查ReachVolume / Interact
到某点 / 查某物 → 达成自动完成。
开启Interact
开某门 / 终端 / 容器 → 达成自动完成。
修复RepairCount
修复 N 个收容节点 → 达数自动完成。
守住HoldTimer
守设备 N 秒 → 达成自动完成。
解密 复用Interact+HoldTimer
在终端守着读条解密 → 复用现成判定,不用新写。
护送 要新做Escort(新支持)
护送 NPC / 装置到目的地并存活——唯一要新做的一点点:护送 Actor + 到点存活判定。
一条委托 = 一个(或少数几个)扁平条件,不需要 Quest 那套 Order / OR / 严格顺序(那些留给主线)。回收/收集默认回板交付,击杀/调查/开启/修复/守住默认达成自动完成bRequiresTurnIn 控制)。
03

发放与领取

S0 委托板 + NPC + 下层随机事件

委托板(主入口)

ACSCommissionBoard(新 ICSInteractable,落点 S0)。交互打开面板看可接委托。同时挂 6 个槽、按游戏日刷新(已定)——每次回 S0 都有新活、且天然限量防刷。

NPC 发放(叙事味)

某 NPC(如 Varga)在满足世界标签时给专属委托。复用现有 ACSNarrativeNPC + 对话框架(对话末尾可挂一条委托)。

下层随机事件(已定加入)

下层探索低概率触发动态事件 / 遭遇 / 角色(求救 NPC、异常读数、敌群、待解密终端)。服务器权威 + 节流 + 确定性种子(主机/客户端一致)。走近自动激活或就近接取,发请购点/材料(不发关键物)。新 UCSDynamicEventDirector + DynamicEvents.csv(单元 115)。

接受(per-player,服务器权威):板上点"接受" → RequestAcceptCommission(CommissionId) → 服务器对该玩家标记 Active、按 Notify* 累计进度。HUD 角落显示活动委托目标 + 进度(补任务 HUD 缺口)。

04

交付流程

服务器权威 · 同合成"校验→扣→产出"
CLIENT委托板点交付RequestTurnInCommission
SERVER校验对该玩家 Active? 条件达成?(回收: 背包有足量目标物)
交出物品回收/收集: RemoveItem 交付(消耗)
发奖给本玩家AddCredits 请购点 + AddItem 材料/升级料;解锁标签归世界
记账计数+重置CompletionCount++ · 按 ResetType 置冷却/重抽板位
回收/收集是"交物换配给"的语义(把物资交回基金会);击杀/调查/开启达成即可即时领奖或回板一键领。发奖只给完成者本人(委托是个人合同),唯一例外是世界解锁标签(写世界、不按人复制,红线 R2)。
05

奖励

请购点 + 材料 + 升级料(不发关键物)
奖励字段说明
请购点RewardCurrencyRC委托主奖励(经济缺的那块,接 Economy-A 钱包)。重复委托 50–200/次。
材料 / 升级料RewardItemIds(复用 ItemId*N"获取材料 / 强化"——升级料喂升级台。
解锁(可选)RewardWorldStateTags(复用)某些委托解锁请购台新上架 / 路线(写世界、不按人复制)。
绝不发(红线): 关键样本 / 关键物 / 残留 / 路线权限本体 / AIM 协议 / 破坏结局变量的物品。可重复的板委托 / 随机事件只发普通经济物 + 请购点。
唯一例外 = 主线钩子小Boss(§06):作为主线必经推进,它可以给关键道具 / 房卡 / 路线解锁——那是主线进度奖励(解锁写世界、不可买卖、一次性不可刷,符合 R2/R3),不是经济刷取。
06

主线钩子 · 每层终结小Boss

击败 → 解锁 / 关键道具 / 房卡(已定)

是什么

每层主线在终结处放一个小Boss / 招牌收容遭遇(boss 本体设计见 SD_47 + SCP 实体清单)。主线必经,不是可选委托。

击败发什么

有分量、有吸引力的奖励(用户强调):解锁新区 / 路线、关键道具房卡(可含请购点)。这是每层"首通"的奖励。

怎么落地

不需要委托系统新代码:用现有 Quest/Objective 的奖励路径——击败 = KillCount 条件 → RewardItemIds/RewardRouteIds/RewardWorldStateTags。boss 战本体走敌人/AI 单元。

为什么算主线

它推进世界进度(解锁归世界、不按人复制),与"骨干揭示自然归档"(SD_43)一致;正常通线即开下一层,不另设收集门。

07

重复刷新 · 防剥削

可重复但不刷钱跳进度(红线 R4)

重置

ResetType:Never(一次性故事)/ Session(每会话)/ Daily(按游戏日刷新) + MaxCompletions 上限。

奖励曲线(已定)

同一委托当日内随完成次数轻微递减(防刷),次日刷新回满。

板位限量

板上只 6 槽、按日刷新——结构性限制每趟能刷多少,天然防无限刷。

过期 / 放弃(已定)

不强制过期,可主动放弃换新(RequestAbandonCommission)。

风险对策
委托刷钱跳进度不发关键物/路线/AIM;奖励适中;大额只给一次性委托/小Boss
无限刷重复委托板位 6 槽 + 日刷新 + MaxCompletions + 当日递减
交付刷取(交假/重复交)服务器校验背包真有目标物再 RemoveItem;完成次数服务器记账、幂等
08

多人 · 团队助攻

队友帮打计入 · 必须做扎实(用户强调)
这块是重点(用户点名"必须做好"):一次击杀 / 收集,所有"已接该委托且在场参与"的玩家各自 +1 进度(物品不克隆、只各自推进各自委托)。服务器权威判定"参与"(在场距离 / 造成伤害 / 拾取归属),防一人刷全队、防重复计数、防未参与白嫖

每人独立

接受 / 进度 / 完成次数 / 钱包都每人一份(存玩家档);同一委托多人可各自接、各自完成。

共享

上架/解锁门控读共享 WorldProgress——一人解锁全队享(后加入玩家不需重打,R9)。

协作鼓励

一起打怪 / 搜物,各自委托同步推进——PvE 不抢、不互斥。

缩放

普通掉落/委托怪按在场人数缩放(1.0/1.45/2.35,SD_42);关键不复制。

§1

服务器权威流

复用求值器 · 客户端只发请求

委托进度走现有求值器的 Notify*(给调用点补"触发玩家"上下文,转给该玩家的委托进度);接受/交付走 owning ACSPlayerController 的 Server RPC。Quest 的世界级一次性逻辑完全不动

事务入口服务器校验 / 动作
接受RequestAcceptCommission板上有该委托/前置满足 → 对该玩家标 Active
进度复用 NotifyKill/Collect/Interact/ReachVolume/...带触发玩家 → 推进该玩家 Active 委托(团队助攻:在场参与者各自推进)
交付RequestTurnInCommissionActive+条件达成(回收: 有物)→ RemoveItem → AddCredits+物品 → 计数+重置
放弃RequestAbandonCommission该玩家委托回 Available
落点:查表 UCSItemDataSubsystem(加 FCSCommissionDefinition);per-player 进度挂 ACSPlayerState(与钱包同层,存玩家档);求值复用 UCSObjectiveDirectorSubsystem;发请购点用 PlayerState->AddCredits(接 Economy-A)。客户端不直接对委托板发 Server RPC(走玩家拥有的交互组件)。
§2

数据表 schema

新 Commissions.csv,走现有生成管线

编辑 Data/Source/Commissions.csvpython Scripts\GenerateGameData.pyData/Generated/* → 查表。生成器校验:ConditionType 合法、引用存在、奖励不含关键类、RewardCurrencyRC≥0

表 / 字段管什么
Commissions.csvCommissionId, Title, Desc, IssuerId, Layer, CommissionType, ConditionType, ConditionKey, ConditionCount, bRequiresTurnIn, RewardCurrencyRC, RewardItemIds, RewardWorldStateTags, PrereqWorldStateTags, ResetType, MaxCompletions, BoardWeight, SortOrder
DynamicEvents.csv(单元 115)EventId, 触发条件, 概率, 动词, 奖励, 冷却(下层随机事件)
存档(玩家档,per-player)FCSPlayerSaveData.CommissionsFCSCommissionState{CommissionId, State(Available/Active/ReadyToTurnIn/CoolingDown), Progress, CompletionCount, LastResetDay}
口径:本页落点忠实于 SD_50 与现有接缝(Objectives.csvConditionType · UCSObjectiveDirectorSubsystem · ApplyObjectiveEvent · ACSNarrativeNPC · CSV 单源 + 节点图工具)。单元状态以 DevelopmentUnits.md 为准。经济侧见 经济系统
§3

落地单元 · 示例 · 图例

✅ 完成 已 PIE/验收 🔶 待验证 编译过待 PIE ⬜ 计划 设计有、代码无(委托现状=全部如此)
111Commission-A 委托地基Commissions.csv+per-player状态+复用求值(击杀/回收)+接受/交付+发请购点(依赖 Economy-A)
112Commission-B 全类型+重置调查/开启/修复/守住+ResetType+MaxCompletions+板轮换+放弃
113Commission-C 委托板+HUDACSCommissionBoard+WBP_CommissionBoard+HUD活动追踪(补任务HUD)
114Commission-D NPC发放+支线小案ACSNarrativeNPC委托钩子+SD_48小案示范
115Commission-E 随机事件+护送/解密UCSDynamicEventDirector+DynamicEvents.csv+护送Actor

示例委托(味道示范)

类型内容 → 奖励
L0 回收把 3 件旧物件带回 S0 委托板交付 → +80 RC(每日 2 次)
L1 击杀清理污染变异体 5 个 → 自动完成 → +120 RC + 过滤芯×2(每日 1 次)
L2 调查(Varga)到孢子异常读数点标记 → +150 RC + 解锁"抗孢子装备"上架(一次性)
L1 开启用消耗门卡开封锁侧厅 → +100 RC(一次性)
下层 随机·护送低概率撞见求救 D 级 → 护送到电梯存活 → +RC + 材料
每层 主线·小Boss击败终结小Boss → 解锁下层/路线 + 关键道具/房卡(主线必经)
下一步:委托全部依赖 Economy-A 货币钱包(单元 105);地基落地后按 111→115 推进。设计细节见 SD_50