Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
| Date uploaded | 2 months ago |
| Version | 1.2.2 |
| Download link | elesanren-Hard_Item_Randomizer-1.2.2.zip |
| Downloads | 48 |
| Dependency string | elesanren-Hard_Item_Randomizer-1.2.2 |
This mod requires the following mods to function
cometcake575-Architect
The Silksong level editor mod, easily make and share custom levels with an in-game level editor and level sharer.
Preferred version: 3.26.11cometcake575-SimpleEnemyRando
A Silksong enemy and boss randomiser made using Architect, with options for seeded and unseeded randomisation.
Preferred version: 0.7.33README
Hard_Item_Randomizer w/ SceneRandom这是将 Hard_Item_Randomizer 与 BloodDestroier 的 Scene Randomizer 整合在一起的配置包,安装后即可同时体验物品/技能/纹章/商店/开局全随机 + 场景出口随机化的完整丝之歌随机挑战。
更新
陷阱不会生成在离出入口 7 格范围内,避免出门撞脸。
Traps will not spawn within 7 grids of any door, preventing instant hits upon entering a room.
陷阱不会生成在离场景中心 1.5 格以内,防止在重生点被包围。
Traps will not spawn within 1.5 grids of the room's center, keeping the respawn area clear.
如果某平台高度比场景最低地面高出超过 70 格,上面不再生成陷阱。
Platforms higher than 70 grids above the room's lowest ground will no longer have traps.
荆棘类陷阱(棕藤、壳木荆棘、白荆棘)只在平台宽度超过 7 格的地方生成,且需要上下空间宽敞。
Thorn traps (brown vines, shellwood thorns, white thorns) only appear on platforms wider than 7 grids, and only when there is enough vertical clearance.
电草现在与大陷阱同样对待,只在上下空间都足够时才出现,避免卡在夹层中。
Voltgrass now follows the same rule as other large traps: it only spawns where there is ample vertical space, preventing it from blocking narrow passages.
大房间内的陷阱数量略微增加,保证挑战密度。
The number of traps in large rooms has been slightly increased to maintain a consistent challenge.
右侧面板的“场景随机”开关已换为大号彩色按钮,按钮上直接显示当前开关状态(开/关)。
The "Scene Randomizer" toggle on the right panel is now a large colored button that shows the current status (ON/OFF) directly on it.
右侧面板的“陷阱随机”开关同样换为大按钮,状态清晰可见。
The "Trap Randomizer" toggle has also been changed to a large button with clear status indication.
攻击方向选择(上劈、左劈、右劈)从小复选框改为大按钮,选中时绿色高亮,操作更直观。
Attack direction options (up, left, right) have been changed from small checkboxes to large buttons, with green highlighting when active, making selection much easier.BlacklistedExits =
// ---- 已确认 (1-10) ----
"Bone_11_top1", // Bone_11 的上
"Bellshrine_right1", // Bellshrine 的右
"Bellshrine_05_right1", // Bellshrine_05 右
"Dock_06_Church_right1", // Dock_06_Church 右
"Bone_East_09_top1", // Bone_East_09 上
"Bellshrine_02_left1", // Bellshrine_02 左
"Dust_04_right1", // Dust_04 右下
"Dust_05_right1", // Dust_05 右
"Dust_06_left1", // Dust_06 左中
"Shadow_20_bot1", // Shadow_20 下
// ---- 已确认 (11-28) ----
"Bellshrine_03_right1", // Bellshrine_03 右
"Shellwood_19_left1", // bellwood19 左
"Shellwood_01b_right2", // shellwood01b 右边第二个
"Bellshrine_02_right1", // Bellshrine_02 右
"Dust_06_right1", // Dust_06 右
"Mosstown_03_top1", // mosstown零三上
"Coral_10_left1", // coral10 左
"Song_27_left1", // song27 左
"Dock_01_right1", // Dock_01 的右上
"Dock_01_right2", // Dock_01 的右上
"Bone_East_14_right1", // Bone_East_14 右
"Bone_East_14_right2", // Bone_East_14 右
"Greymoor_01_right1", // Greymoor_01 右中
"Greymoor_01_right2", // Greymoor_01 右中
"Dust_02_right1", // Dust_02 右中
"Dust_02_right2", // Dust_02 右中
"Dust_04_left1", // Dust_04 左中
"Dust_04_left2", // Dust_04 左中
// ---- 已确认 (29-37) ----
"Song_25_top1", // song25上 (两个上出口)
"Song_25_top2", // song25上
"Arborium_05_top1", // arbroium05上
"Hang_07_top1", // hang07上
"Hang_07_left1", // hang07左
"Slab_02_left1", // slab02左
"Slab_05_right1", // slab05右
"Cog_06_right1", // cog06右
"Library_11b_right1", // library11b右
// ---- 已确认 (38-53) ----
"Dock_03_bot1", // Dock_03 右下
"Dock_03c_top1", // Dock_03c 左中向上的口子
"Dock_03c_left2", // Dock_03c 左下
"Dock_02_left1", // Dock_02 左上
"Shellwood_02_right2", // sherwood02 右下
"Shellwood_01_left2", // sherwood01 左下
"Dust_Chef_left1", // Dust_Chef 左下
"Song_11_left4", // song11左墙未破 (左侧四个中确认 left4)
"Slab_03_right1", // slab03右 (第一个)
"Slab_03_right2", // slab03右 (第二个)
"Slab_03_right5", // slab03右 (第三个)
"Slab_03_right7", // slab03右 (第四个)
"Slab_03_left6", // slab03左
"Under_05_left2", // under05左下
"Under_02_right4", // under02右下
"Under_02_left1", // under02左下
// ---- 已确认 (54-62) ----
"Bone_East_12_right1", // Bone_East_12 的右
"Shadow_27_right1", // Shadow_27 的右
"Halfway_01_right1", // Halfway_01 的右
"Wisp_03_top1", // Wisp_03 的上
"Arborium_01_right1", // arborium01上右 (确认 right1)
"Arborium_04_left1", // arborium04 左
"Library_13_left1", // library13 左
"Hang_03_right2", // hang03 右下 (确认 right2)
"Aqueduct_02_right3", // Aqueduct_02 右中 (确认 right3)
"Song_19_entrance_left1", // song19entrance左
"Weave_04_right2", // weave04右
"Slab_16_right1", // slab16右
"Bone_East_04_left1", // boneeast04左
};
CHANGELOG
v1.7.7
-
整理了一下模组库,大部分开局选项可以正常应用,开局随机物品和随机技能暂时不可用,如果发现技能不能用的请关闭技能分裂的具体选项
-
most of the starting options can be applied normally, but the starting random items and random skills are currently unavailable. If you find that skills cannot be used, please disable the specific options for skill splitting."
v1.7.6
- 一些小修复关于面板
- small changes about panel string
v1.7.4
- 修复开局设置未实际生效的严重问题,面板不再自动弹出
- 修复了在配置面板中修改的攻击方向、技能模式、物品数量等开局选项在进入游戏后未真正生效的 bug。现在所有设置都会在游戏场景加载完成后正确应用,不再出现“改了等于没改”的情况。
- 配置面板不再在进入游戏时自动弹出。现在仅在主菜单按 F8 或通过“随机模式”按钮手动呼出,避免干扰正常游戏流程。
- Fixed startup settings not actually applying; panel no longer auto‑pops
- Fixed a bug where startup options (attack directions, skill mode, item count, etc.) modified in the config panel were not taking effect after entering the game. All settings now properly apply once the game scene finishes loading.
- The configuration panel no longer automatically opens when entering the game. It can now only be opened manually by pressing F8 in the main menu or via the “Random Mode” button, preventing unexpected interruptions.
- 新增随机池类型配置页面(物品随机池类型)
- 在主页面新增“物品随机池”按钮,点击进入独立配置页面。
- 提供三个独立开关:纹章随机、技能类物品随机、遗物随机。开关状态通过按钮背景颜色(绿/灰)直观显示,不再依赖文字。
- 这些开关控制对应类型的物品是否参与拾取随机替换。关闭后,捡到该类型物品时直接获得原物品,不进行随机化。
- 开关状态与种子绑定,会随种子世界重置或存档保存。
- Added random pool type configuration page (Item Pool Types)
- A new “Item Random Pool” button has been added on the main page, leading to a dedicated configuration page.
- Three independent toggles: Crest Random, Skill Item Random, Relic Random. States are visually indicated by button background color (green/on, grey/off), no text dependency.
- These toggles control whether items of the corresponding type are replaced by random rewards when picked up. When disabled, picking up such an item grants the original item directly.
- Toggle states are bound to the seed and persist across seed resets and save files.
- 新增重复物品次数配置页面(细粒度限制)
- 在主页面新增“重复物品”按钮,进入后以 12 列网格布局 展示所有可重复获得的物品类别。
- 每个条目采用“上面标签、下面输入框”的竖直排列,清晰易读。
- 可配置项包括:
- 普通物品(技能类物品、遗物、其他物品)
- 方向权限(上劈、左劈、右劈、冲刺左/右、飞针左/右、漂浮左/右、壁跳左/右、回血)
- 能力虚拟奖励(丝之矛、灵丝风暴、飞针、丝刃标、符文之怒、苍白之爪、丝忆弦针、格挡、深邃挽歌、幻兽歌、风铃摇、疾风步、流浪者披风、雪绒披风、灵丝升腾、蛛攀术、蓄力斩)
- 珍贵虚拟奖励(面具碎片、丝轴碎片、丝线恢复上限+1、纹章槽位解锁器)
- 所有输入框实时修改对应的配置项(
ConfigEntry<int>),无需确认立即生效。 - 该页面完全由代码动态生成,支持运行时调整,配置项数量可随需求扩展。
- Added repeat limit configuration page (fine‑grained limits)
- A new “Repeat Items” button on the main page opens a page with a 12‑column grid layout showing all item categories that can be obtained multiple times.
- Each entry is arranged vertically (“label above, input field below”) for clarity.
- Configurable items include:
- Normal items (Skill Items, Relics, Other Items)
- Direction permissions (Up Slash, Left Slash, Right Slash, Dash Left/Right, Harpoon Left/Right, Float Left/Right, Wall Jump Left/Right, Heal)
- Ability virtual rewards (Silk Spear, Thread Sphere, Harpoon Dash, Silk Charge, Silk Bomb, Silk Boss Needle, Needolin, Parry, Deep Elegy, Beast Song, EvaHeal, Swift Step, Drifter's Cloak, Faydown Cloak, Silk Soar, Cling Grip, Charge Slash)
- Precious virtual rewards (Heart Piece, Spool Part, Max Silk Regen Up, Crest Slot Unlocker)
- All input fields modify their corresponding
ConfigEntry<int>in real time, taking effect immediately. - This page is fully generated at runtime, supporting dynamic adjustments and easy extension.
- 其它改进
- 修复了部分情况下因反射类型不匹配导致的
InvalidCastException和NullReferenceException,现在所有配置项的读写都经过安全转换。 - 物品随机池页面(纹章/技能/遗物)的按钮颜色切换逻辑已修复,点击后背景色和文字色会正确变化。
- 所有配置项的暂存与延迟应用逻辑已整合到
MenuChangerMod中,确保进入游戏场景后才统一应用,避免在菜单阶段过早初始化导致设置被重置。 - 优化了重复物品页面的动态生成性能,仅在首次打开页面时构建,后续刷新仅同步数值。
- Other improvements
- Fixed
InvalidCastExceptionandNullReferenceExceptioncaused by type mismatches in reflection; all config entry reads/writes now use safe casting. - Fixed colour switching logic for toggles on the item pool page (Crest/Skill/Relic); background and text colours now change correctly on click.
- All pending settings are now properly stored and applied after entering the game scene, preventing early initialisation and loss of configuration.
- Optimised dynamic generation of the repeat limit page: layout built only once on first open, subsequent refreshes only sync values.
请将以上内容追加到 CHANGELOG.md 文件末尾。
v1.7.3
- 初步实现外部配置面板,大幅提升模组交互体验
- 基于新开发的
NativeUIMaker原生 UI 库,重构了模式选择与详细设置界面,所有控件均使用丝之歌原生菜单风格(按钮、选项行、滑块、箭头、输入框等)。 - 新增 模式选择页面:在存档选择后进入,提供“经典模式”“钢魂模式”“随机模式”三个入口。
- 点击“随机模式”会打开完整的详细设置面板;点击其他模式直接开始游戏。
- 详细设置面板 包含以下完整配置项(所有状态均保存并全局生效):
- 游戏模式:彻底疯狂、纹章诅咒、全随机模式(开启后禁用除下劈外的所有方向动作,改为拾取方向权限物品)。
- 开局相关:
- 攻击方向权限:上劈、左劈、右劈(独立开关)。
- 技能随机模式:总随机(0–13 个技能)或分类随机(垂直/水平/特殊/攻击各 0–5/4/4/5)。
- 开局随机物品数量(0–10)。
- 种子输入与重置种子世界(重置所有拾取点、技能触发器)。
- 辅助设置:
- 丝之心、疾跑和上冲(
RoomRandomMode开关)。 - 显示完成度百分比(全局)。
- 货币保底阈值(首次保底次数、二次保底次数、丝矛保底次数,可输入修改)。
- 丝之心、疾跑和上冲(
- 房间随机:
- 启用场景随机、显示场景名/种子、修改并应用房间种子、传送至指定场景。
- 陷阱随机:
- 启用陷阱随机、陷阱难度(初猎/专注/满溢)、陷阱生命化(陷阱移动)、重置冰冻黑名单。
- 怪物随机:
- 启用怪物随机、随机缩放开关及最小/最大缩放值。
- 物品随机:
- 启用物品随机,显示当前物品种子。
- 重置商店记录、重置捡拾记录。
- 页面导航:左右箭头切换页面,各页面均有“返回主页面/返回模式选择”按钮。
- 所有界面文字已接入本地化系统,可根据游戏语言自动切换中英文(支持 CN/EN/Auto 手动切换)。
- 配置面板默认按 F8 呼出(可在
MenuChangerMod中修改),并与存档选择流程无缝集成。
- 初步实现外部配置面板,大大提升了模组的交互体验
- Based on the newly developed
NativeUIMakernative UI library, the mode selection and detailed settings interface have been completely redesigned. All controls use Silksong’s native menu style (buttons, option rows, sliders, arrows, input fields, etc.). - Mode selection page: Shown after choosing a save profile, offering “Classic Mode”, “Steel Mode”, and “Random Mode”.
- Clicking “Random Mode” opens the full detailed settings panel; other modes start the game directly.
- Detailed settings panel includes the following full set of options (all states are saved globally):
- Game mode: Totally Crazy, Crest Curse, Full Random Mode (disables all directional actions except down slash, replaces them with directional permission items).
- Startup options:
- Attack direction permissions (up slash, left slash, right slash).
- Skill random mode: Total Mode (0–13 skills) or Category Mode (Vertical/Horizontal/Special/Attack: 0–5/4/4/5).
- Starting item count (0–10).
- Seed input and Reset Seed World (respawns all pickups and skill triggers).
- Assist settings:
- Silk Heart, Dash & Super Jump (
RoomRandomModetoggle). - Show completion percentage (global).
- Currency pity thresholds (first pity count, second pity count, Silk Spear pity count, editable via input fields).
- Silk Heart, Dash & Super Jump (
- Room randomizer:
- Enable scene randomizer, show scene name/seed, modify and apply room seed, teleport to named scene.
- Trap randomizer:
- Enable traps, trap difficulty (Beginner/Focused/Overflow), trap life (movement), reset frost blacklist.
- Enemy randomizer:
- Enable enemy randomizer, random scale toggle, min/max scale values.
- Item randomizer:
- Enable item randomizer, display current item seed.
- Reset shop records, reset pickup records.
- Page navigation: Left/right arrows to switch pages, each page has “Back to Main” / “Back to Mode Select” buttons.
- All UI text is fully localised, automatically switching between Chinese and English based on the game language (CN/EN/Auto manual switch supported).
- The configuration panel can be opened with F8 by default (customisable in
MenuChangerMod) and integrates seamlessly with the save profile selection flow.
- 快速进入第一幕(跳过开场动画)
- 点击“确认并开始游戏”或通过模式选择按钮开始新游戏时,会自动跳过开场动画序列。
- 实现方式:在
SkipToFirstAct中检测Opening_Sequence场景,进入后连续调用GameManager.SkipCutscene多次,直接进入第一幕(Act 1)。 - 该功能仅在通过模组启动新游戏时生效,不影响正常游戏或手动跳过动画的行为。
- Fast transition to Act 1 (skip intro cutscenes)
- When starting a new game via “Confirm & Start” or the mode selection buttons, the opening sequence is automatically skipped.
- Implementation:
SkipToFirstActdetects theOpening_Sequencescene and callsGameManager.SkipCutscenemultiple times, jumping directly to Act 1. - This only activates when the mod starts a new game; it does not affect normal gameplay or manual cutscene skipping.
- 完整配置面板包含的所有可调项目(对应 NativeUIMaker_Config.json)
以下是配置文件中定义的控件及其功能(已全部集成并测试通过):
| 页面 | 控件名称 | 类型 | 功能说明 |
|---|---|---|---|
| ModeSelect | ClassicModeBtn | 按钮 | 经典模式(无永久死亡) |
| ModeSelect | SteelModeBtn | 按钮 | 钢魂模式(永久死亡) |
| ModeSelect | RandomModeBtn | 按钮 | 打开详细设置面板 |
| Main | RoomBtn | 开关按钮 | 启用/禁用场景随机 |
| Main | ItemBtn | 开关按钮 | 启用/禁用物品随机 |
| Main | TrapBtn | 开关按钮 | 启用/禁用陷阱随机 |
| Main | EnemyBtn | 开关按钮 | 启用/禁用怪物随机 |
| Main | DetailBtn | 按钮 | 切换到第一个详情页(开局相关) |
| Main | BackToModeSelectBtn | 按钮 | 返回模式选择页 |
| Main | ConfirmBtn | 按钮 | 应用所有设置并开始新游戏(跳过开场) |
| Main | ResetOption | 选项行 | 重置种子世界(开/关) |
| Main | SeedInput | 输入框 | 输入种子文本 |
| Detail0 | UpBtn / LeftBtn / RightBtn | 开关按钮 | 上劈/左劈/右劈权限 |
| Detail0 | ItemCountSlider | 滑块 | 开局随机物品数量 0–10 |
| Detail1 | SkillModeOption | 选项行 | 技能随机模式(总随机/分类随机) |
| Detail1 | TotalSkillSlider | 滑块 | 总随机技能数量 0–13 |
| Detail1 | VSlider / HSlider / SSlider / ASlider | 滑块 | 分类随机各类型数量 |
| Detail2 | CrazyBtn | 开关按钮 | 彻底疯狂模式(一键随机满配) |
| Detail2 | CrestCurseBtn | 开关按钮 | 纹章诅咒效果 |
| Detail2 | FullRandomBtn | 开关按钮 | 全随机模式(禁用方向动作,改为权限物品) |
| Detail2 | CategoryBtn1–6 | 开关按钮 | 全随机模式下的方向分裂细项(冲刺、飞针、漂浮、壁跳、回血、攻击方向) |
| Detail3 | SilkHeartBtn | 开关按钮 | 丝之心、疾跑和上冲(RoomRandomMode) |
| Detail3 | CompletionBtn | 开关按钮 | 显示完成度百分比 |
| Detail3 | CurrencyFirstThresholdInput / CurrencySecondThresholdInput / SilkSpearPityInput | 输入框 | 货币保底次数和丝矛保底次数 |
| Detail4 | ApplyRoomSeedBtn | 按钮 | 应用房间种子 |
| Detail4 | ShowRoomNameBtn / ShowRoomSeedBtn | 开关按钮 | 显示当前场景名/种子 |
| Detail4 | RoomSeedInput | 输入框 | 房间种子输入 |
| Detail5 | TrapDifficultyBtn | 三态按钮 | 陷阱难度(初猎/专注/满溢) |
| Detail5 | TrapMovementBtn | 开关按钮 | 陷阱生命化(移动) |
| Detail5 | ResetFrostBlacklistBtn | 按钮 | 重置冰冻黑名单 |
| Detail6 | EnemyScaleRandomBtn | 开关按钮 | 怪物随机缩放 |
| Detail6 | EnemyScaleMinSlider / EnemyScaleMaxSlider | 滑块 | 缩放最小/最大值 |
| Detail7 | ResetShopBtn / ResetPickupBtn | 按钮 | 重置商店记录 / 重置捡拾记录 |
此外,每个详情页底部都有左右箭头(LeftArrow / RightArrow)用于切换页面,以及 BackToMainBtn 返回主页面。
所有控件的默认值、位置、尺寸均可在 NativeUIMaker_Config.json 中自由调整,无需重新编译模组。
- Full list of adjustable options in the configuration panel (as defined in NativeUIMaker_Config.json)
The following controls are defined in the config file and are fully integrated and tested:
| Page | Control Name | Type | Description |
|---|---|---|---|
| ModeSelect | ClassicModeBtn | Button | Classic mode (no perma‑death) |
| ModeSelect | SteelModeBtn | Button | Steel mode (perma‑death) |
| ModeSelect | RandomModeBtn | Button | Open detailed settings panel |
| Main | RoomBtn | Toggle | Enable/disable scene randomizer |
| Main | ItemBtn | Toggle | Enable/disable item randomizer |
| Main | TrapBtn | Toggle | Enable/disable trap randomizer |
| Main | EnemyBtn | Toggle | Enable/disable enemy randomizer |
| Main | DetailBtn | Button | Switch to first details page (startup settings) |
| Main | BackToModeSelectBtn | Button | Return to mode selection |
| Main | ConfirmBtn | Button | Apply all settings and start new game (skip cutscenes) |
| Main | ResetOption | Option row | Reset seed world (On/Off) |
| Main | SeedInput | Input field | Enter seed text |
| Detail0 | UpBtn / LeftBtn / RightBtn | Toggle | Up slash / left slash / right slash permissions |
| Detail0 | ItemCountSlider | Slider | Starting random item count 0–10 |
| Detail1 | SkillModeOption | Option row | Skill random mode (Total / Category) |
| Detail1 | TotalSkillSlider | Slider | Total random skill count 0–13 |
| Detail1 | VSlider / HSlider / SSlider / ASlider | Slider | Category mode counts per type |
| Detail2 | CrazyBtn | Toggle | Totally Crazy mode (max out random items instantly) |
| Detail2 | CrestCurseBtn | Toggle | Crest curse effect |
| Detail2 | FullRandomBtn | Toggle | Full Random mode (disables directional actions, replaces with permission items) |
| Detail2 | CategoryBtn1–6 | Toggle | Directional split details under Full Random mode (dash, harpoon, float, wall jump, heal, attack direction) |
| Detail3 | SilkHeartBtn | Toggle | Silk Heart, Dash & Super Jump (RoomRandomMode) |
| Detail3 | CompletionBtn | Toggle | Show completion percentage |
| Detail3 | CurrencyFirstThresholdInput / CurrencySecondThresholdInput / SilkSpearPityInput | Input field | Currency pity counts and Silk Spear pity count |
| Detail4 | ApplyRoomSeedBtn | Button | Apply room seed |
| Detail4 | ShowRoomNameBtn / ShowRoomSeedBtn | Toggle | Show current scene name / seed |
| Detail4 | RoomSeedInput | Input field | Room seed input |
| Detail5 | TrapDifficultyBtn | Three‑state button | Trap difficulty (Beginner / Focused / Overflow) |
| Detail5 | TrapMovementBtn | Toggle | Trap life (movement) |
| Detail5 | ResetFrostBlacklistBtn | Button | Reset frost blacklist |
| Detail6 | EnemyScaleRandomBtn | Toggle | Random enemy scaling |
| Detail6 | EnemyScaleMinSlider / EnemyScaleMaxSlider | Slider | Min / max scale values |
| Detail7 | ResetShopBtn / ResetPickupBtn | Button | Reset shop records / Reset pickup records |
Additionally, each details page has left/right arrows (LeftArrow / RightArrow) for page switching, and a BackToMainBtn to return to the main page.
All default values, positions, and sizes of the controls can be freely adjusted in NativeUIMaker_Config.json without recompiling the mod.
v1.7.2
- 尝试整合空洞原生 UI 模块(实验性)
- 为了更好地贴合丝之歌原生菜单的视觉与交互风格,我们开始拆解游戏内置的 UI 组件,并封装为独立可复用的模块。
- 目前已成功提取并封装了以下原生风格控件:
NativeButton(支持图标按钮、纯文字按钮、小型按钮)NativeLabel(标准文本标签)NativeOption(带描述浮层的开关/选项行)NativeSlider(带数值显示的滑块)NativeArrow(左右翻页光标,带动画效果)
- 这些控件目前仅作为独立库存在,尚未接入游戏主流程,因此在当前版本中“没有实际用处”。
- 拆解出的组件已通过
PrefabMenuObjects从游戏运行时动态获取预制体(如NormalButton、OptionsMenuScreen中的左右箭头等),理论上可以零资源依赖地复刻原生 UI 样式。 - 后续版本将逐步用这些原生控件替换现有的开局选项面板和模式选择菜单,使模组的界面体验与丝之歌本体完全一致。
- 本次更新仅为底层技术探索,不影响任何现有功能,也不改变玩家的游戏体验。
- Experimental integration of Hollow Knight native UI modules
- To better align with Silksong’s native menu visuals and interaction, we started extracting the game’s built‑in UI components and encapsulating them as reusable modules.
- The following native‑style controls have been successfully isolated and wrapped:
NativeButton(supports icon button, text button, small button)NativeLabel(standard text label)NativeOption(toggle/option row with description tooltip)NativeSlider(slider with numeric display)NativeArrow(left/right page cursor with animation)
- These controls currently exist only as a standalone library and have not been integrated into the main gameplay flow – hence “no practical use” in this version.
- The extracted components dynamically fetch prefabs from the running game (e.g.,
NormalButton, the left/right arrows inOptionsMenuScreen) viaPrefabMenuObjects, allowing zero‑asset‑dependency replication of native UI styles. - Future updates will gradually replace the existing startup options panel and mode selection menu with these native controls, making the mod’s interface indistinguishable from Silksong itself.
- This update is purely technical groundwork and does not affect any existing features or alter the player’s experience.
v1.7.1
- 全面支持界面文字本地化(可自由翻译)
- 现在模组的所有界面文字(按钮、标签、提示等)都可以通过外部 JSON 文件来翻译成任何语言。
- 在模组目录下的
language文件夹中放入任意名称的.json文件,格式为{"中文原文": "译文"},模组启动时会自动读取并应用。 - 你甚至可以同时放多个语言文件(比如
en.json、ja.json),模组会合并所有条目。 - 关于如何编写 JSON 文件,请阅读
language文件夹中的README.md说明。 - 本次更新已经将模组内所有需要翻译的文字全部提取为标准键值,理论上不再有硬编码的中文。
- Full localization support (add any language with a JSON file)
- All UI text (buttons, labels, tooltips) can now be translated into any language using external JSON files.
- Place
.jsonfiles (e.g.,en.json,ja.json) in thelanguagefolder under the mod directory. Each file follows the format{"Chinese original": "translation"}. The mod will load them automatically on startup. - You can have multiple language files at once – all entries are merged.
- See
README.mdinside thelanguagefolder for detailed instructions. - This update has extracted every piece of text in the mod into standard keys, so no Chinese is hard‑coded anymore.
- 修复大量游戏逻辑问题,提升稳定性和体验
- 怪物随机开关:现在关闭“启用怪物随机”后,所有已经被替换的敌人会立即恢复原样,并且不会再出现新的随机敌人。之前关闭后敌人仍然会被替换的问题已彻底修复。
- 商店改进:每个商店现在固定有 12 个商品(原来是 8 个),并且商店里刷出的普通物品(面具碎片、丝轴碎片、纹章槽位解锁器等)在整个游戏中只会出现一次,不会在不同商店重复出现,也不会在同一商店里出现两个一样的东西。前三格特殊奖励(随机念珠、随机蓝血、随机上限提升)仍然每个商店都有,不受限制。
- 纹章槽位解锁器:这种特殊物品现在在商店里最多可以购买 20 次(原来是 3 次),并且它只会解锁非法术槽(攻击槽、工具槽),不会浪费在本来就解锁的法术槽上。
- 全随机模式逻辑修正:开启全随机模式后,原本会被错误保留的一些技能方向(比如冲刺、壁跳的左右权限)现在会被彻底清除,拾取方向权限物品后能正确解锁对应的单方向。关闭全随机模式后,所有方向恢复为默认允许,并且随机拾取池也恢复正常。
- 随机池调整:全随机模式开启时,原本会直接给完整技能的原版物品(如“Swift Step”、“Harpoon Dash”等)不会再出现在拾取列表中,取而代之的是方向权限物品(冲刺左、冲刺右等)。关闭全随机模式时,物品池恢复为全部原版物品+虚拟奖励。
- 其他小修复:修正了壁跳技能因大小写问题无法正确给予的 bug;法术槽初始化现在只会解锁一个,而不是一口气全部解锁。
- Fixed multiple gameplay logic issues, improved stability and experience
- Enemy randomizer toggle: When disabling “Enable Enemy Randomizer”, all already‑replaced enemies now instantly revert to normal, and no new random enemies will appear. The previous issue where enemies remained replaced after turning it off is now fixed.
- Shop improvements: Every shop now has 12 item slots (previously 8). Common items (Mask Shard, Spool Part, Crest Slot Unlocker, etc.) appear only once across the entire game – no duplicates in different shops, and no duplicates within the same shop. The first three special slots (Random Coin Pouch, Random Blue Health, Random Cap Upgrade) still appear in every shop without restrictions.
- Crest slot unlocker: This special item can now be bought up to 20 times in shops (was 3). It only unlocks non‑spell slots (Attack slots, Tool slots) and never wastes on slots that are already unlocked.
- Full Random Mode logic fixed: When activating Full Random Mode, any previously unlocked directional permissions (e.g., left/right dash, left/right wall jump) are now properly reset. Picking up a direction permission item correctly unlocks only that specific direction. When deactivating Full Random Mode, all directions revert to default allowed, and the random pickup pool returns to normal.
- Random pool adjustments: While Full Random Mode is on, vanilla items that directly grant full abilities (e.g., “Swift Step”, “Harpoon Dash”) no longer appear in the pickup pool. Instead, direction permission items (e.g., “Dash Left”, “Dash Right”) are added. When the mode is off, the pool contains all original items plus virtual rewards.
- Other small fixes: Fixed a case‑sensitivity bug that prevented the wall‑jump ability from being granted correctly. The spell slot initialisation now unlocks only one slot at a time instead of all at once.
v1.7.0
- 将所有能力纳入随机池(包含风铃摇)
- 现在游戏中的所有能力(包括之前遗漏的“风铃摇”等)都已完整加入到开局技能随机池中。
- 无论是“总随机”还是“分类随机”模式,技能池均覆盖全部能力:攻击技能(丝之矛、灵丝风暴、符文之怒等)、移动能力(冲刺、二段跳、飞针、壁跳、超级跳等)以及特殊能力(丝忆弦针、深邃挽歌、幻兽歌、风铃摇等)。
- 技能获得时统一使用游戏原生弹窗(
SkillGetMsg/PowerUpGetMsg),图标、名称、描述显示完整,与原版体验一致。
- All abilities (including EvaHeal) now included in the random pool
- Every ability in the game (including the previously missing “EvaHeal” etc.) has been fully integrated into the starting skill random pool.
- Whether in “Total Mode” or “Category Mode”, the skill pool covers all abilities: combat skills (Silk Spear, Thread Storm, Rune Rage, etc.), traversal abilities (Dash, Double Jump, Harpoon Dash, Wall Jump, Super Jump, etc.), and special abilities (Needolin, Deep Elegy, Beast Song, EvaHeal, etc.).
- Skill acquisition now consistently uses the game’s native popups (
SkillGetMsg/PowerUpGetMsg), displaying full icons, names, and descriptions, matching the vanilla experience.
- 新增“全随机模式”
- 在开局选项面板的技能随机模式下方(右侧边缘)添加了独立的“全随机模式”开关。
- 开启后:
- 所有额外方向动作被永久禁用:上劈、左劈、右劈、回血、左右冲刺、左右飞针、左右漂浮、左右壁跳全部无法使用,仅保留默认下劈。
- 原版中直接给予这些能力的物品(如“Swift Step”“Harpoon Dash”“Drifter’s Cloak”“Cling Grip”“EvaHeal”等)不再出现在随机拾取池中。
- 取而代之,随机拾取池中会生成方向权限物品(例如“冲刺左”“冲刺右”“飞针左”“飞针右”“上劈权限”等)。拾取一个权限物品会同时给予对应的基础技能并解锁该方向(例如捡到“冲刺左”则获得冲刺技能并允许向左冲刺)。
- 只有捡齐左右两个权限(或对应的攻击方向),该动作才能完全不受限制。
- 关闭后:
- 所有方向动作恢复为默认允许状态。
- 随机拾取池恢复为正常物品池(包含全部原版物品和虚拟奖励)。
- 全随机模式的状态会保存到配置文件中,重启游戏后自动沿用。
- Added “Full Random Mode”
- A standalone “Full Random Mode” toggle has been added below the skill mode buttons (aligned to the right edge) on the startup options panel.
- When enabled:
- All extra directional actions are disabled from the start: Upward slash, left slash, right slash, healing, left/right dash, left/right harpoon dash, left/right float, and left/right wall jump are all locked. Only the default down slash remains usable.
- Vanilla items that directly grant these abilities (such as “Swift Step”, “Harpoon Dash”, “Drifter’s Cloak”, “Cling Grip”, “EvaHeal”, etc.) are removed from the random pickup pool.
- Instead, the pool receives direction permission items (e.g., “Dash Left”, “Dash Right”, “Harpoon Left”, “Harpoon Right”, “Upward Slash Permission”, etc.). Picking up a permission item gives the corresponding base skill and unlocks that specific direction (e.g., picking “Dash Left” grants the dash ability and allows dashing left).
- Only after obtaining both left and right permissions (or the corresponding attack direction) does the action become fully unrestricted.
- When disabled:
- All directional actions revert to their default allowed state.
- The random pickup pool returns to the normal item pool (including all vanilla items and virtual rewards).
- The Full Random Mode state is saved to the configuration file and persists across game restarts.
v1.6.11
- 修正技能显示与原生弹窗,调整纹章排除池
- Fixed skill display and native popups, adjusted crest exclusion pool
-
所有技能(攻击类与能力类)现在统一使用游戏原生弹窗(
SkillGetMsg/PowerUpGetMsg)进行提示,不再依赖自定义贴图。 -
All skills (both combat and traversal) now use the game’s native popups (
SkillGetMsg/PowerUpGetMsg) for notifications, eliminating reliance on custom textures. -
跑图能力(冲刺、爬墙、飞针、丝忆弦针、超级跳、风铃摇等)现在正确调用
PowerUpGetMsg.Spawn,显示与原版一致的能力获得界面,并配有完整图标与描述。 -
Traversal abilities (Dash, Wall Jump, Harpoon Dash, Needolin, Super Jump, EvaHeal, etc.) now correctly invoke
PowerUpGetMsg.Spawn, displaying the authentic ability-get interface with proper icons and descriptions. -
修复了部分能力(如二段跳、流浪者披风、蓄力斩、格挡)因原生物品缺失而回退到自定义弹窗的问题;现通过动态创建临时
ToolItemSkill并提取物品描述,确保所有技能都能呈现原生样式的弹窗。 -
Fixed issues where certain abilities (e.g., Double Jump, Drifter’s Cloak, Charge Slash, Parry) fell back to custom popups due to missing original items; now by dynamically creating temporary
ToolItemSkillobjects and extracting item descriptions, all skills can show native‑style popups. -
纹章随机排除池新增
Hunter_v2、Hunter_v3、Witch_v2、Cloakless等纹章,避免它们参与随机映射,防止出现无效或破坏游戏流程的纹章组合。 -
The crest exclusion pool now includes
Hunter_v2,Hunter_v3,Witch_v2,Cloaklessand others, preventing them from participating in random mapping and avoiding invalid or game‑breaking crest combinations. -
优化了排除池逻辑:现在通过
HashSet统一管理,支持动态加载与保存,排除的纹章将完全不会出现在随机结果中,确保游戏平衡性。 -
Optimised exclusion pool logic: now managed via a
HashSetwith dynamic loading and saving; excluded crests will never appear in random results, ensuring game balance.
v1.6.8
- 修复模组独立性问题,移除所有外部依赖
- 现在模组完全独立运行,不再需要任何第三方模组(如 Architect、Benchwarp、EnemyRando 等)即可正常工作。
- 即使其他模组被禁用或缺失,以下功能依然完整可用:
- 房间随机化(场景连接随机生成)
- 物品随机化(拾取点替换、随机奖励池、次数限制)
- 额外拾取点生成(69 个自定义位置的简易钥匙拾取点,坐标持久化)
- 商店随机化(商品随机生成、购买刷新、本地化名称、特殊奖励槽位)
- 纹章随机化(神龛纹章映射、重生装备、教堂禁用)
- 传送至最后坐过的椅子(F6 快捷键,独立实现,不依赖 Benchwarp)
- 陷阱随机化(陷阱生成、难度切换、移动系统、平台/弹跳物生成)
- 货币保底(30/1000 次掉落简易钥匙)
- 开局选项面板(完整设置界面,种子选择,难度调整)
- 所有功能在无任何其他模组的环境下均能正常运行,消除了之前因缺少依赖而导致的崩溃或功能缺失。
- Fixed mod independence, removed all external dependencies
- The mod now runs completely standalone, requiring no third‑party mods (e.g., Architect, Benchwarp, EnemyRando) to function correctly.
- Even when other mods are disabled or missing, the following features still work fully:
- Room randomisation (scene connection generation)
- Item randomisation (pickup replacement, reward pool, quantity limits)
- Extra pickup generation (69 custom Simple Key pickups with coordinate persistence)
- Shop randomisation (dynamic stock, purchase refresh, localised names, special reward slots)
- Crest randomisation (shrine mapping, respawn equipment, chapel disabling)
- Warp to last bench (F6 hotkey, implemented independently, does not require Benchwarp)
- Trap randomisation (generation, difficulty toggles, movement system, platform/bounce object spawning)
- Currency pity (Simple Key at 30/1000 drops)
- Startup options panel (full settings interface, seed selection, difficulty adjustments)
- All features work reliably even with no other mods installed, eliminating crashes or missing functionality caused by missing dependencies.
- 性能优化:CPU 占用降至 1% 以下
- 彻底重写了物品池初始化、商店缓存刷新、陷阱生成循环等高频操作,消除了之前版本中因不当刷新导致的 CPU 峰值。
- 场景加载时的拾取点状态应用、陷阱缓存读取等操作改为增量更新,避免全量遍历。
- 经过实测,模组在正常游戏过程中 CPU 占用率稳定在 1% 以下,不再出现异常卡顿或高负载情况。
- Performance optimised: CPU usage below 1%
- Rewrote high‑frequency operations such as item pool initialisation, shop cache refreshes, and trap generation loops, removing CPU spikes caused by improper refreshes.
- Pickup state application and trap cache loading on scene changes are now incremental, avoiding full traversals.
- Benchmarking shows the mod’s CPU usage consistently stays below 1% during normal gameplay, with no abnormal stuttering or high load.
- 商店随机化扩展:特殊奖励加入商店,槽位固定为 8 个
- 商店随机池现在包含三种特殊奖励:
- 槽位 0:随机金币(价格 1,数量 50–300 念珠)
- 槽位 1:随机蓝血(价格 1,分 1–5 次给予,每次间隔 1 秒)
- 槽位 2:随机上限提升物品(价格 60–120,随机获得面具碎片/丝轴碎片/丝线恢复上限)
- 每个商店固定生成 8 个商品槽位,不受原商店预制体限制。
- 购买任何商品后,该槽位立即消失(
SetActive(false)),其余槽位保持原位,不会出现错位或布局混乱。 - 所有商品的名称、描述均已接入本地化系统,中英文切换时正确显示。
- Shop randomisation extended: special rewards added, fixed 8 slots
- The shop pool now includes three special reward types:
- Slot 0: Random coin pouch (price 1, 50–300 coins)
- Slot 1: Random blue health (price 1, 1–5 doses, one per second)
- Slot 2: Random cap upgrade (price 60–120, random Heart Piece / Spool Part / Silk Heart)
- Every shop now spawns exactly 8 item slots, regardless of the original shop’s prefab.
- After purchase, that slot immediately disappears (
SetActive(false)), leaving the remaining slots in place with no layout distortion. - All item names and descriptions are localised, correctly switching between Chinese and English.
- 随机物品概率调整
- 重新平衡了随机奖励池的概率分布:
- 普通虚拟奖励(灵丝、生命、蓝血、甲壳、灵丝碎片、完全恢复等):30%
- 随机念珠堆(生成可打碎的钱堆):20%
- 有限类奖励(原版物品、面具碎片、丝轴碎片、丝线恢复上限):50%
- 当有限类奖励全部达到次数上限(每种最多 2 次)时,自动回退到普通虚拟奖励,保证永远不会空奖励。
- 同时优化了货币保底和拾取点替换的混合池概率(物品 70%、技能 20%、纹章 10%),与全局随机奖励解耦。
- Random item probabilities adjusted
- Rebalanced the random reward pool distribution:
- Common virtual rewards (silk, health, blue health, shards, silk parts, full restore, etc.): 30%
- Random coin pouch (spawns a breakable rosary shrine): 20%
- Limited rewards (vanilla items, Heart Piece, Spool Part, Silk Heart): 50%
- When all limited rewards have reached their quantity cap (2 each), the system falls back to common virtual rewards, ensuring no empty reward.
- Also tuned the mixed pool probabilities for currency pity and pickup replacement (70% item, 20% skill, 10% crest), decoupled from the global random reward logic.
- 其他改进
- 修复了开启“陷阱生命化”后某些陷阱移动时碰撞箱不同步的问题。
- 修复了重置种子世界后商店缓存未清空,导致新种子下仍显示旧商品的问题。
- 移除了控制台中大量冗余的调试日志,仅保留关键错误和警告信息。
- Other improvements
- Fixed collision box desync when trap movement was enabled on certain traps.
- Fixed shop cache not being cleared when resetting the seed world, causing old items to appear under the new seed.
- Removed numerous redundant debug log entries, leaving only critical errors and warnings.
v1.6.4
- 修复商店界面显示与购买逻辑
商店物品列表现在完全正常:已购买的物品槽位不会凭空消失,未购买的物品会紧凑排列,滚动区域高度自适应,背景无空洞。购买任意物品后,商店界面会立即刷新,剩余物品保持原位并可继续购买。所有商店物品的名称和描述均已接入本地化系统,中英文切换时正确显示对应文本。
- Shop display and purchase logic fixed
Shop item lists now render correctly: purchased slots no longer disappear, unsold items are compactly arranged, scroll area height adapts to visible slots, and background gaps are gone. After any purchase, the shop UI instantly refreshes, leaving remaining items in place and fully purchasable. All shop item names and descriptions are now hooked into the localisation system, displaying correct Chinese/English text without placeholders.
- 技能获得弹窗全面升级为原生 SkillGetMsg
无论是从拾取点、商店购买还是保底获得的技能,现在都会调用游戏原生的技能获得弹窗(SkillGetMsg)。弹窗会正确显示技能的图标、中文名称(如“飞针”“疾风步”)以及对应的纹章槽位信息,与游戏内正常获取技能时的体验完全一致。同时,开局面板中选择的技能也使用原生弹窗。若原生预制体加载失败(极少数情况),会自动回退到自定义弹窗。
- Skill popups upgraded to native SkillGetMsg
Skills obtained via pickups, shop purchases, or pity now use the game’s native skill popup (SkillGetMsg). Popups correctly show the skill’s icon, Chinese name (e.g., “飞针”, “疾风步”), and crest slot information, matching the vanilla skill acquisition experience. Skills chosen in the startup panel also use the native popup. A fallback custom GUI popup is kept in case the native prefab fails to load (rare).
- 随机奖励系统彻底重构:统一映射池 + 次数限制 + 新奖励类型
- 统一固定映射:所有随机奖励(原版物品、珍贵虚拟物品、普通虚拟资源、念珠、丝线、生命、蓝血、上限提升等)现在共享一个基于种子的全局随机池。相同种子下,每次拾取的奖励序列完全固定且可复现。
- 新增奖励类型:随机念珠(30%概率,数量10~60)、中灵丝(+3)、满灵丝(+9)、小生命(+2)、大生命(+3)、小蓝血(+2)、大蓝血(+5)、完全恢复(满血+满丝)、面具碎片(+1生命上限)、丝轴碎片(+1丝线容量)、丝之心(+1丝线恢复上限)。
- 次数限制:原版物品和珍贵虚拟物品(面具碎片、丝轴碎片、丝之心)每个最多获得2次;普通虚拟资源(灵丝、生命、蓝血、念珠、甲壳、灵丝碎片、完全恢复)无次数限制。
- 概率分布:普通虚拟奖励30%,随机念珠30%,有限类奖励40%。若有限类所有物品已满,则自动回退到普通虚拟奖励。
- Random reward system fully rewritten: unified pool + quantity limits + new reward types
- Unified deterministic mapping: All random rewards (vanilla items, precious virtual items, common virtual resources, coin pouches, silk, health, blue health, upgrades) now share a seed‑based global pool. The same seed yields the exact same reward sequence every time.
- New reward types: Random coin pouch (30% chance, 10–60 coins), Medium Silk (+3), Full Silk (+9), Small Health (+2), Large Health (+3), Small Blue Health (+2), Large Blue Health (+5), Full Restore (full health + full silk), Heart Piece (+1 max health), Spool Part (+1 silk capacity), Silk Heart (+1 silk regen limit).
- Quantity limits: Vanilla items and precious virtual items (Heart Piece, Spool Part, Silk Heart) cap at 2 each; common virtual resources have no limit.
- Probability distribution: Common virtual 30%, random coin pouch 30%, limited rewards 40%. If all limited rewards are capped, fallback to common virtual rewards.
v1.6.3
- 敌人随机调整优化:大小缩放概率与血量异常修复
- 敌人大小随机现在只影响 20% 的替换敌人:80% 的敌人保持原大小不变,20% 的敌人会在 0.3 倍到 2.5 倍之间随机缩放(正弦分布,更倾向于极值),使体型变化更具惊喜感但不泛滥。
- 彻底修复关闭“启用敌人随机”后原敌人血量异常的问题:之前关闭开关后,原敌人血量会被错误地保留为 10000 点(EnemyRando 内部临时值)。现在开关关闭时会强制恢复原敌人血量、重新激活物体,并移除残留组件,确保敌人完全恢复原版状态。
- 开关功能现在完全可靠:开启时 EnemyRando 正常替换并进行血量修正与大小缩放;关闭时 EnemyRando 完全不生效,所有敌人回归原版。
- Enemy randomizer adjustments: size scaling probability & health regression fix
- Random size scaling now applies to only 20% of replaced enemies: 80% of enemies keep their original size, while 20% are randomly scaled between 0.3× and 2.5× (sine‑weighted, favouring extremes) – adding variety without over‑doing it.
- Fixed health bug when toggling “Enable Enemy Randomizer” OFF: previously, when disabled, the original enemy would keep an incorrect 10000 HP (internal temporary value from EnemyRando). The mod now forces the original HP back, reactivates the object, and removes leftover components, ensuring the enemy fully reverts to vanilla state.
- Toggle is now completely reliable: when ON, EnemyRando replaces enemies, applies HP correction and random size; when OFF, EnemyRando does nothing – all enemies remain unchanged.
- 新增面板背景开关
- 在开局选项面板左侧“当前存档开局设置:”标题旁添加了“面板背景”开关(与其它开关样式一致,显示开/关状态)。
- 开启时显示自定义背景图片(
nandu/4.png);关闭时显示半透明深灰色背景,可隐约看到后方游戏画面。 - 开关状态自动保存,下次启动游戏时保持上次设置。
- Added panel background toggle
- Added “Panel Background” toggle next to the “Current Save Startup Settings:” title on the left panel (same style as other toggles, showing on/off status).
- When enabled, displays the custom background image (
nandu/4.png); when disabled, shows a semi‑transparent dark grey background that lets the game view show through. - Toggle state is automatically saved and restored on next game launch.
v1.6.1
- 增加怪物随机调整功能(集成 SimpleEnemyRando)
- 在开局选项面板右侧新增“启用怪物随机”开关,控制对
SimpleEnemyRando模组生成怪物的额外修正。 - 血量修正:所有被替换的怪物,其生命值强制设为原怪物的血量(不再受
MaintainHp配置或黑线化倍率影响)。 - 大小随机:每个替换怪物生成时,体型会在 0.3 倍到 2.5 倍之间随机缩放(正弦分布,更倾向于极值),使怪物外观更具变化性,不影响碰撞判定和攻击范围。
- 以上调整仅在开关打开时生效,不影响
SimpleEnemyRando原有其他功能(黑线化、等离子化、一致性模式等)。
- Added monster randomizer adjustments (integrated with SimpleEnemyRando)
- Added “Enable Enemy Randomizer” toggle on the right panel of the startup options, controlling extra modifications to enemies spawned by
SimpleEnemyRando. - HP correction: All replaced enemies now have their health forced to the original enemy’s HP (ignoring
MaintainHpconfig and black‑threaded multipliers). - Random size: Each replaced enemy’s scale is randomly chosen between 0.3× and 2.5× (sine‑weighted distribution, favouring extreme values), adding visual variety without affecting collision or attack ranges.
- These adjustments only take effect when the toggle is enabled, leaving all other
SimpleEnemyRandofeatures (black‑thread, plasmified, consistency modes, etc.) untouched. ——————
v1.5.7
- 额外拾取点生成系统全面完成,并修复重生重复生成问题
- 今日为 69 个自定义位置添加了拾取点,覆盖场景包括:Tut_01、Bonetown、Bone_01c、Bone_01、Bone_04、Mosstown_01/02、Bone_14、Bone_19、Belltown_basement_03、Bone_08/09/10/11、Aspid_01、Bonegrave、Chapel_Wanderer、Shellwood_26、Belltown_04、Bone_East_03/07/08/09b/14/14b/16/17/17b/18/18b/24、Ant_04_left、Ant_21、Dock_06_Church、Greymoor_01/02/04/05/06/07/08/15/15b/22、Shellwood_11、Coral_12、Song_01/03/11/15/17、Hang_08、Library_04/06/07、Dock_02。
- 引入了独立坐标持久化机制:当玩家在任何位置拾取物品时(无论是原生点还是自定义点),模组会记录玩家当前位置的坐标。这些坐标会在后续场景加载时用于判断,若某自定义点的坐标与已记录坐标的距离在 2 单位以内,则该自定义点不会再次生成。
- 该机制确保了自定义拾取点在玩家捡起后永远不会重生,且不依赖
PlayerData的物品拥有状态,仅依赖实际拾取时的位置。 - 所有自定义点目前均给予物品
Simple Key(可后续批量调整)。
- Extra pickup generation system completed, and respawn issue fixed
- Added pickups to 69 custom positions across numerous scenes, including Tut_01, Bonetown, Bone_01c, Bone_01, Bone_04, Mosstown_01/02, Bone_14, Bone_19, Belltown_basement_03, Bone_08/09/10/11, Aspid_01, Bonegrave, Chapel_Wanderer, Shellwood_26, Belltown_04, Bone_East_03/07/08/09b/14/14b/16/17/17b/18/18b/24, Ant_04_left, Ant_21, Dock_06_Church, Greymoor_01/02/04/05/06/07/08/15/15b/22, Shellwood_11, Coral_12, Song_01/03/11/15/17, Hang_08, Library_04/06/07, Dock_02.
- Introduced a position‑based persistence system: whenever the player picks up any item (from any source), the mod records the player’s current position. When loading a scene, any custom pickup whose coordinates are within 2 units of a recorded position will be skipped.
- This ensures that custom pickups never respawn after being collected, without relying on
PlayerData’s ownership flags – only the actual pick‑up position matters. - Currently all custom pickups grant
Simple Key(can be batch‑changed later).
- 少量场景尚未完全覆盖,货币随机物品机制待后续调整
- 极少数场景(如部分 Greymoor 房间、Coral 区域深处等)的自定义点尚未放置,将在后续版本中补全。
- 货币掉落随机转换为物品的机制(
CurrencyCollectPatch)暂时保持原样,待全部额外拾取点完成后,再统一评估并可能调整保底逻辑。
- A few scenes still lack custom pickups, currency‑to‑item randomizer will be revisited later
- A handful of scenes (e.g., some Greymoor interiors, deeper Coral rooms) have not yet received custom pickups; they will be covered in future updates.
- The “currency → random item” mechanic remains untouched for now; it will be reviewed and possibly adjusted after all extra pickup placements are completed.
- 货币保底与拾取点奖励改为混合池(物品/技能/纹章等概率抽取)
- 货币掉落保底(每约150次掉落)和拾取点替换现在从混合池中随机抽取奖励,不再固定给予物品。
- 奖励类型及概率:物品 70%、技能 20%、纹章 10%。
- 物品奖励沿用原有的
ItemRandomizer.GetRandomItem()池,包含所有非黑名单、可继续获得的SavedItem(工具、收集品、圣物等)。 - 技能奖励直接调用
SkillTriggerMod.SkillRandomizer.GiveRandomSkill(),技能获得时会显示专属弹窗(图标+名称)。 - 纹章奖励通过
crest.Unlock()触发CrestRandomizePatch的映射系统,自动解锁对应的随机纹章,并禁用源纹章神龛。 - 钥匙保底(前30次掉落)保持不变,仍然固定给予
Simple Key,不参与混合池。
- Currency pity and pickup replacement now use a mixed reward pool (item/skill/crest)
- Currency drop pity (roughly every 150 drops) and pickup replacement now draw from a mixed reward pool instead of always giving an item.
- Reward types and probabilities: Item 70%, Skill 20%, Crest 10%.
- Item rewards use the existing
ItemRandomizer.GetRandomItem()pool, containing all non‑blacklisted, still‑obtainableSavedItem(tools, collectables, relics, etc.). - Skill rewards directly call
SkillTriggerMod.SkillRandomizer.GiveRandomSkill(), which shows a dedicated popup (icon + name) when a skill is obtained. - Crest rewards call
crest.Unlock(), triggering the mapping system inCrestRandomizePatch, which unlocks a random mapped crest and disables the source shrine. - The key pity (first 30 drops) remains unchanged, always giving a
Simple Keyand not participating in the mixed pool.
v1.5.6
- 拾取点完全脱离游戏原生管理,消失仅取决于实际拾取
- 无论原物品在
PlayerData中是否已被标记为“已拥有”,拾取点都会强制显示,除非玩家亲手捡起。 - 彻底拦截了
CheckActivation和SetPlayerDataBool两个原生隐藏判断,游戏再也无法根据物品获得状态自动隐藏拾取点。 - 所有拾取点(包括原生的、自定义添加的)现在由模组根据
_pickedKeys统一控制显示/隐藏,真正做到了“未捡必现,已捡永消”。
- Pickups completely decoupled from game’s ownership system; disappearance only depends on actual collection
- Pickups are forced to appear regardless of whether the original item is already marked as “owned” in
PlayerData, unless the player actually picks them up. - The native hiding methods
CheckActivationandSetPlayerDataBoolare fully blocked by Harmony prefixes, preventing the game from auto‑hiding pickups based on ownership. - All pickups (both vanilla and custom‑added) are now uniformly controlled by the mod via
_pickedKeys, achieving “unpicked = visible, picked = gone”.
- 初步完成额外拾取点放置(非拾取点念珠、宝箱等)
- 为大量原本不可交互或仅作为装饰的物体(如念珠、宝箱、雕像等)增加了拾取点。
- 目前已覆盖的场景区域:骸底镇(Bonetown)、深坞(Deep Docks)、猎者小径(Hunter’s Nest / 部分相关房间)。
- 货币随机获得物品的机制暂时保留不动,等待全部拾取点放置完毕后再统一调整。
- Initial placement of extra pickups on non‑pickup objects (rosaries, chests, etc.)
- Added pickups to many previously non‑interactive or decorative objects (e.g., rosaries, chests, statues).
- Currently completed areas: Bonetown, Deep Docks, and Hunter’s Nest (plus several related rooms).
- The “currency → random item” mechanic is temporarily left untouched; it will be revisited after all extra pickup placements are finished.
- 开局面板位置修正与交互优化
- 面板初始位置改为 底部对齐(
y = Screen.height - 1200),不再因屏幕高度变化而抖动或超出视野。 - 彻底修复了面板背景抽搐问题(背景不再随内部布局变化而闪烁)。
- “分类随机”模式下的四个滑块(垂直/水平/特殊/攻击技能)现在放入固定高度的滚动区域,可通过滚动条查看所有选项,面板总高度不再被撑开,底部按钮始终可点。
- Startup panel position fixed and interaction improved
- Panel now anchors to the bottom of the screen (
y = Screen.height - 1200), preventing jitter or going off‑screen. - The background flickering issue has been fully resolved (background no longer rebuilds on layout changes).
- Under “Category Random” mode, the four sliders are placed inside a scrollable area with a fixed height, allowing all options to be accessed via scrollbar. The overall panel height stays constant, and the bottom buttons remain always clickable.
v1.5.4
- 拾取点随机管理系统彻底修复
- 重写了拾取点的控制逻辑,现在完全由模组自主管理每个拾取点的消失与出现状态。
- 禁用游戏原生的
PersistentBoolItem组件,改用唯一键(优先读取itemData.ID,降级使用场景+坐标)持久化记录已捡点。 - 场景加载时强制应用状态,确保拾取点不会因为游戏内部初始化而被错误还原。
- 重置种子世界时,所有拾取点会重新出现,已捡记录同步清空。
- Pickup point randomisation management fully fixed
- Overhauled the pickup control logic; the mod now fully manages the visibility state of every pickup.
- Disabled the game’s native
PersistentBoolItemcomponent and switched to a unique‑key system (preferringitemData.ID, falling back to scene+position) for persistent tracking of collected pickups. - Force‑applies the collected state on scene load, preventing pickups from being incorrectly restored due to game‑side initialisation.
- Resetting the seed world now respawns all pickups and clears the collected record.
- 陷阱随机池新增三名特殊敌人
- 在“装饰物”分类中加入三个新单位:
- 核弹手雷王(
dock_bomber) – 飞行投掷大范围爆炸物。 - 越战老兵 ×2(
stilkin和stilkin_trapper) – 一个近战突袭,一个远程投掷飞镖。
- 核弹手雷王(
- 它们会按照陷阱生成规则出现在场景中,拥有完整的 AI 行为,不影响原有陷阱配额。
- 对应的预制体已通过
JumpObjects.architect.json预加载,确保动态生成正常。
- Three new enemies added to trap randomiser
- Added three new units to the “Decoration” category:
- Nuke Grenade King (
dock_bomber) – flying enemy that drops large‑scale explosives. - Two Vietnam War Veterans (
stilkinandstilkin_trapper) – one melee ambusher, one ranged dart thrower. - They spawn according to the trap generation rules, have full AI behaviour, and do not interfere with the original trap quotas.
- Nuke Grenade King (
- Their prefabs are preloaded via
JumpObjects.architect.jsonto ensure dynamic spawning works correctly.
- 开局选项面板垂直位置调整
- 将设置面板的初始位置改为 底部对齐(
y = Screen.height - 1200),底部紧贴屏幕下沿。 - 避免面板过高时超出屏幕顶部,为下方内容留出更多空间。
- Startup panel position adjusted
- The settings panel now aligns to the bottom of the screen (
y = Screen.height - 1200), keeping the bottom edge flush with the screen. - Prevents the panel from extending above the screen when it is too tall, leaving more room for lower content.
- 房间随机逻辑初步完成,99% 不会卡关
- 优化了随机连接生成算法,通过以下手段极大降低死路概率:
- 排除有效出口数为 1 的房间(不参与随机,保持原版连通性)。
- 禁止自环,禁止
Tut_01连接到高房间。 - 高房间后置处理(第二阶段),先连接普通房间,剩余出口再与高房间混合配对。
- 添加生成后完整性验证,自动重试不合规的结果。
- 经大量测试,99% 以上的情况下所有房间都能通过某种路径到达,极少数边缘情况会通过验证重试自动修复。
- Room randomisation logic preliminarily completed, 99% no soft‑locks
- Improved the connection generation algorithm to greatly reduce dead ends:
- Rooms with only one valid exit are excluded (stay vanilla).
- Self‑loops and
Tut_01connecting to high‑priority rooms are forbidden. - High‑priority rooms are processed in a second phase: normal rooms connected first, then remaining exits mixed with high rooms.
- Added post‑generation validation and automatic retry for invalid results.
- Extensive testing shows that over 99% of runs allow all rooms to be reachable; rare edge cases are automatically fixed by retries.
- 椅子模组(Benchwarp)翻译全面修正
- 修正了所有凳子的中文译名(区域名和具体凳子名),与游戏内场景名称保持一致。
- 右侧面板的难度按钮文字、各种开关标签也同步更新为中/英文准确对照。
- 中英文切换时不再出现混合或错译。
- Benchwarp translations fully corrected
- Fixed all Chinese bench names (area names and individual bench names) to match in‑game scene names.
- Also updated difficulty button labels and toggle texts on the right panel for accurate Chinese/English switching.
- No more mixed or incorrect translations when toggling languages.
v1.5.2
- 纹章随机系统全面修复
- 重新实现了纹章(Crest)的随机映射与重生装备逻辑。
- 现在获得神龛纹章时,会正确映射到另一个随机纹章并解锁,源纹章保持锁定状态。
- 坐长椅重生后,角色会自动装备最后获得的那个映射纹章,外观和属性都能正常刷新。
- 整体效果与 v1.4 及更早版本基本一致,但 角色模型上的纹章动画没有变化(即装备不同纹章时,环绕主角的粒子/特效样式保持原样,不影响游戏性)。
- 修复了之前版本中重生无法刷新纹章外观、Hunter 被错误映射、协程启动失败等问题。
- 所有防链式映射、教堂场景禁用、持久化记录等辅助功能全部保留。
- Crest randomizer fully fixed
- Completely reworked the crest mapping and respawn equip logic.
- Obtaining a shrine crest now correctly maps it to another random crest, unlocks the target, and leaves the source crest locked.
- After respawning at a bench, the hero automatically equips the last mapped crest, with both visuals and stats properly refreshed.
- The overall behaviour is nearly identical to v1.4 and earlier, except that the crest animation on the character model does not change (i.e., the particle/effect circling the hero stays the same regardless of equipped crest – gameplay unaffected).
- Fixed previous issues where the crest appearance wouldn’t update on respawn, Hunter was incorrectly remapped, coroutine failures, etc.
- All supporting features (chain‑mapping prevention, chapel disabling, persistent storage) remain intact.
v1.5.1
- 场景音乐无缝切换(房间随机模式专用)
- 当房间随机化开启时,在不同区域之间移动,背景音乐会直接切换,不再有淡入淡出的过渡效果。
- 这能避免音乐错位感,比如明明已经进入灰沼,却还在播放钟心镇的配乐。
- 该功能默认开启,无需任何设置,只在房间随机化激活时生效。
- Instant music switching for room randomizer
- When room randomization is active, background music now cuts directly when moving between areas, removing the fade‑in/fade‑out transition.
- This prevents music mismatch, such as hearing Bellhart’s theme while actually inside Greymoor.
- The feature is enabled by default and only takes effect when the room randomizer is turned on.
- 完成度百分比显示开关(全局生效)
- 在开局选项面板中新增“完成度”按钮,可以自由选择是否在背包界面和存档界面显示完成度百分比。
- 关闭后,背包、工具、日志、任务等界面将不再显示“完成度”文字和百分比数字,存档界面也不会显示完成度。
- 该开关独立保存,切换后立即生效,无需重进游戏。
- 注意:关闭显示并不会影响游戏内部的完成度计算,只是隐藏了文字,进度不受影响。
- Completion percentage display toggle (global)
- A new “Completion” button has been added to the startup options panel, allowing you to choose whether to show the completion percentage in the inventory and save menus.
- When turned off, the “Completion” label and percentage number disappear from the inventory, tools, journal, quests, and save file screens.
- The toggle state is saved independently and takes effect immediately without restarting the game.
- Note: Hiding the display does not affect the internal completion calculation; your progress remains untouched.
- Skip 房间名单(预备数据,尚未生效)
- 根据游戏体验,我们整理了一批“skip”房间的门名单。
- 这些房间的门在随机连接时可能被标记为特殊规则(例如需要特定能力才能通过的出口)。
- 目前仅完成数据统计和存储,尚未将其加入房间随机化的连接规则中。
- 后续版本将根据这份名单,对随机连接进行精细调整,避免玩家卡关或强制走困难路线。
- Skip room list (data preparation, not yet active)
- Based on gameplay experience, we have compiled a list of “skip” room doors.
- These doors may be subject to special rules during random connection (e.g., exits that require specific abilities to traverse).
- Currently, only the data has been collected and stored; it has not been integrated into the room randomizer’s connection rules.
- Future updates will use this list to fine‑tune random connections, preventing soft‑locks or forced difficult routes.
- 所有凳子名称翻译全面修正
- 修正了 Benchwarp(放椅子模组)中所有凳子的中文译名。
- 包括区域名称(如“甲木林”“罪石牢狱”等)和具体凳子名称(如“颓败教堂”“寄生纹章”“阿特拉织巢”等)。
- 同时修正了右侧面板中难度按钮的翻译(“初猎”“专注”“满溢”)以及各种开关的文字。
- 现在中英文切换时,所有界面文字都能准确对应,不再出现英文混入中文或翻译错误的情况。
- All bench names translations fully corrected
- Fixed the Chinese translations for all benches in the Benchwarp mod.
- This includes area names (e.g., “甲木林”, “罪石牢狱”) and individual bench names (e.g., “颓败教堂”, “寄生纹章”, “阿特拉织巢”).
- Also corrected translations for difficulty buttons (“初猎”, “专注”, “满溢”) and various toggle labels.
- When switching between Chinese and English, all interface text now matches accurately, with no mixed or incorrect translations.
v1.5.0
- 拾取点管理绑定物品随机开关,纹章诅咒开局自动重置
- 拾取点消失/出现状态现在完全跟随物品随机开关:开启时模组接管所有拾取点控制,关闭时恢复原生组件行为,不再残留已捡记录。
- 纹章诅咒系统在游戏开局时强制保存原始英雄属性并重置为1倍,确保无诅咒残留。开关状态独立,默认关闭,不再随物品随机开关自动启用。
- Pickup management now bound to item randomizer toggle; crest curse resets on game start
- Pickup visibility state follows the item randomizer toggle: when enabled, the mod fully controls all pickups; when disabled, native components are restored and no leftover collected records remain.
- The crest curse system now forces a reset of hero attributes to their original (1x) values at game start, ensuring no leftover curse effects. Its toggle is independent and disabled by default, no longer auto‑enabled with the item randomizer.
- 商店 UI 彻底修复:已购买槽位偏移 + 重排逻辑
- 修复商店列表中已购买槽位不占位导致后续槽位上移的问题。现在无论是否购买,每个槽位都参与位置累加,已购买槽位额外增加 1.5 偏移量,正确占据空间。
- 未购买槽位紧凑排列,滚动区域高度自适应可见槽位数量,背景空洞问题完全解决。
- Shop UI completely fixed: purchased slot offset + layout logic
- Fixed the issue where purchased slots did not occupy space, causing subsequent slots to shift upward. Now every slot participates in position accumulation regardless of purchase status, with purchased slots receiving an extra 1.5 offset to correctly occupy space.
- Unpurchased slots are compactly arranged, and the scrollable area height adapts to the number of visible slots, eliminating any background gaps.
- 纹章诅咒效果调整:削弱幅度降低,正面属性增至 3 个
- 每个纹章现在随机选择 3 个属性 获得正面增益(原为 2 个),增益倍率保持不变。
- 负面削弱范围大幅缓和:冷却类从 2~5 倍降至 1.2~2 倍,速度/下落类从 0.3~0.6 提升至 0.7~0.9。
- 开关关闭时立即恢复所有原始属性,无需二次操作。
- Crest curse effect rebalanced: reduced penalty, increased positive attributes to 3
- Each crest now randomly selects 3 attributes for positive bonuses (previously 2), keeping the same positive multipliers.
- Negative penalty ranges have been significantly softened: cooldown categories from 2–5x down to 1.2–2x, speed/fall categories from 0.3–0.6 up to 0.7–0.9.
- Turning off the toggle instantly restores all original hero attributes with no extra steps required.
- 其他改进与清理
- 商店随机器中排除了
ToolCrest和无图标的物品,避免黑屏报错。 - 移除了热键处理器中 F5 输出 FSM 调试信息的功能,减少控制台噪音。
- 所有改动均已测试通过,商店购买、重排、纹章诅咒开关、拾取点管理均稳定运行。
- Other improvements and cleanup
- The shop randomizer now excludes
ToolCrestand items without popup icons to prevent black screen errors. - Removed the F5 debug function that dumped FSM info from the hotkey handler, reducing console noise.
- All changes have been tested and verified: shop purchase, layout, crest curse toggle, and pickup management all work stably.
v1.4.7
-
拾取点完全自主管理(核心重写)
- 禁用游戏原生组件:在
PickupPatch.Initialize中遍历所有CollectableItemPickup,将其挂载的PersistentBoolItem组件设为enabled = false,彻底切断游戏对拾取点消失/出现的控制。 - 唯一键生成:使用
GetPickupKey方法,优先通过反射读取PersistentBoolItem.itemData.ID(若存在)作为稳定标识;否则降级使用场景名 + 物体坐标(保留两位小数),确保每个拾取点有全局唯一的键。 - 持久化记录:已捡点的唯一键存入
HashSet<string>,序列化为picked_keys.json保存到BepInEx/config/SilksongItemRandomizer/。写入采用脏标记(_isDirty)避免频繁 IO。 - 场景加载强制应用状态:
ApplyStateToScene遍历当前场景所有拾取点,根据_pickedKeys决定SetActive(!isPicked)。同时在OnSceneLoaded中调用延迟版本ApplyStateToSceneWithDelay,等待 0.2 秒后再次强制执行,防止游戏内部初始化覆盖。 - 拾取时立即标记:在
DoPickupAction的补丁中,无论特殊点还是普通点,处理完随机物品后都调用MarkAsPicked:将键加入_pickedKeys,保存文件,并立即SetActive(false)禁用物体。 - 重置功能:
ResetAll删除picked_keys.json,清空内存中的_pickedKeys,然后调用WarpToLastBench(保存游戏+加载存档)传送回上次坐的长椅,重新进入场景后所有拾取点重新出现。
- 禁用游戏原生组件:在
-
Item pickup point fully self‑managed (major rewrite)
- Disable native component: In
PickupPatch.Initialize, iterate allCollectableItemPickupand set theirPersistentBoolItemcomponent toenabled = false, completely removing the game’s control over pickup state. - Unique key generation:
GetPickupKeyfirst tries to readPersistentBoolItem.itemData.IDvia reflection; if not available, falls back to scene name + position (2 decimals), ensuring a globally unique key for each pickup. - Persistent record: Collected keys are stored in a
HashSet<string>and serialised topicked_keys.jsonunderBepInEx/config/SilksongItemRandomizer/. A dirty flag (_isDirty) prevents excessive file writes. - Force state on scene load:
ApplyStateToSceneloops through all pickups in the scene and callsSetActive(!isPicked)based on_pickedKeys. A delayed versionApplyStateToSceneWithDelayis called inOnSceneLoaded, reapplying the state after 0.2 seconds to override any late initialisation by the game. - Mark immediately on pickup: In the
DoPickupActionpatches (both Prefix and Postfix), after handling random items,MarkAsPickedis called: adds the key to_pickedKeys, saves the file, and instantly sets the pickup object inactive. - Reset function:
ResetAlldeletespicked_keys.json, clears the in‑memory set, and warps to the last bench (via save+load). Upon re‑entering the scene, all pickups reappear.
- Disable native component: In
-
物品随机化无缝适配
- 特殊点拦截(圣物
CollectableRelic、工具ToolItem、包含 “Rosary” 的念珠):在Prefix中替换为随机物品,原物品不获得,随后标记为已捡。 - 普通点:在
Postfix中正常获得原物品,并额外给予一个随机物品,随后标记为已捡。 - 所有随机化逻辑保留原有种子机制,黑名单物品(如
Steel Spines等)不参与随机替换。
- 特殊点拦截(圣物
-
Item randomiser fully compatible
- Special pickups (Relic, Tool, Rosary‑named): replaced in
Prefixwith a random item; the original item is not obtained, then marked as picked. - Normal pickups: in
Postfix, the original item is obtained normally, plus an extra random item is granted, then marked as picked. - All randomisation logic retains the seed mechanism; blacklisted items (e.g.,
Steel Spines) are excluded.
- Special pickups (Relic, Tool, Rosary‑named): replaced in
-
纹章诅咒系统
每个纹章独立生成偏科效果:随机选择两个英雄属性获得最大值(冷却时间缩短至 1/4,速度提升至 1.5 倍),其余属性极端削弱(冷却时间延长至 2~5 倍,速度降低至 0.3~0.6 倍)。
场景加载时自动应用当前装备的纹章效果,更换纹章后立即生效(无需坐椅子)。
在开局面板“技能随机模式”下方添加独立开关按钮,支持中英文双语显示,开关状态随种子保存并在重置时清除缓存。 -
Crest curse system
Each crest independently generates a specialised effect: two random hero attributes are maxed (cooldown reduced to 1/4, speed increased to 1.5×), while all other attributes are heavily reduced (cooldown 2–5× longer, speed 0.3–0.6×).
The effect is applied automatically on scene load and updates instantly when a crest is equipped (no bench required).
A dedicated toggle button is added below the “Skill Random Mode” section in the startup panel, with bilingual support; the toggle state is saved with the seed and cleared on reset.
v1.4.6
-
修复物品随机获得攻击方向后,切换场景左劈/右劈设置丢失的问题
现在拾取物品时随机解锁的上劈、左劈、右劈会立刻保存到存档和配置文件中,不会再因为进出房间或坐椅子而失效。 -
Fixed attack direction settings (left/right slash) not persisting after scene transition when unlocked via item pickup
Unlocked directions are now saved immediately to both PlayerData and configuration file, preventing loss when changing rooms or using benches. -
为椅子模组(Benchwarp)添加脱离卡死的快捷键
在游戏中按下 F6 即可直接传送回上一次坐过的椅子,不需要打开菜单,不需要打开任何界面。
即使在战斗中卡住、掉进地形缝隙或被陷阱无限连击,按 F6 也能强行脱困。 -
Added a panic warp shortcut for Benchwarp
Press F6 at any time to teleport directly to the last bench you sat on, without opening any menu.
This works even when stuck in combat, fallen into geometry, or locked by traps. -
删除房间随机模组中重复的 F6 快捷键
原来的房间随机模组也占用了 F6(随机传送一个未去过的房间),现在这个功能被注释掉,避免与脱困传送冲突。 -
Removed the conflicting F6 shortcut from the room randomizer mod
The original room randomizer used F6 to teleport to an unvisited room; this binding has been commented out to prevent conflict with the panic warp. -
在椅子模组菜单打开时,屏幕下方显示红色大号提示文字
当打开 Benchwarp 的传送菜单时,画面中下方会显示“按 F6 可直接传送”(英文为“Press F6 to warp directly”),字体放大至 48 号、红色、无背景。
菜单关闭后提示自动消失,不影响其他界面。 -
Added a prominent red tip below the Benchwarp menu
When the warp menu is open, a large red label (“按 F6 可直接传送” / “Press F6 to warp directly”) appears near the bottom centre of the screen.
The tip uses 48‑point font, no background, and disappears automatically when the menu is closed.
v1.4.5
-
设置面板所有文字颜色从蓝色改为冷白色(BrightWhite) 包括标题、按钮、开关、滑块等控件,提升阅读舒适度。 背景和按钮底色保持不变,仅调整文字颜色。
-
Changed all UI text color from blue to cool white (BrightWhite) Includes titles, buttons, toggles, sliders, etc., for better readability. Background and button base colors remain unchanged.
-
攻击方向选择(上劈、左劈、右劈)的设置现在会保存到存档 下次开游戏或切换存档时自动沿用上次的选择,无需重新设置。
-
Attack direction settings (up slash, left slash, right slash) are now saved per profile Your choices will be remembered when you restart the game or switch profiles.
-
英文翻译文件(en.json)修正 将之前混入的中文值改为正确的英文,统一术语,中英文切换时显示更准确。
-
Fixed English translation file (en.json) Replaced mixed Chinese entries with proper English, unified terminology, ensuring accurate display when switching languages.
-
界面图片素材重绘 按钮背景图(1.png、2.png、3.png)和面板背景图(4.png)重新绘制,提升整体美观度和一致性。
-
Redrawn UI image assets Button backgrounds (1.png, 2.png, 3.png) and panel background (4.png) have been redrawn for better visual consistency and aesthetics.
v1.4.4
-
解决剧情点被陷阱守住的问题 在 Bonetown 场景中禁用了矩形区域 (45,3) 到 (82,14) 内的所有陷阱生成,确保剧情点不受干扰。 其他场景的陷阱生成规则保持不变。
-
Fixed story points being blocked by traps Disabled trap generation in the rectangular area (45,3) to (82,14) within the Bonetown scene, ensuring story points remain accessible. Trap generation rules for other scenes remain unchanged.
-
模组与 Benchwarp(放椅子模组)绑定并提供本地化翻译 自动检测系统语言,若为中文则将翻译文件覆盖至 Benchwarp 的语言目录,实现全界面中文显示。 无需手动配置,即插即用。
-
Integrated with Benchwarp (bench warp mod) and added localization Automatically detects system language; if Chinese, overwrites the Benchwarp language file with a full Chinese translation. No manual configuration required, plug‑and‑play.
-
加入受击保护,重生点不再因陷阱攻击而卡出异常状态 在角色复活(
FinishedEnteringScene)时强制重置所有移动锁、受伤后摇、输入缓冲等状态,并给予 4 秒无敌时间。 无论遇到何种陷阱(包括岩浆、虚空等无视无敌的伤害类型),均能保证角色正常移动,不再被无限锁死。 -
Added hit protection; respawn points no longer cause abnormal movement states from trap attacks Forcibly resets all movement locks, recoil states, input buffers, etc. upon respawn (
FinishedEnteringScene), and grants 4 seconds of invincibility. Regardless of trap type (including lava, void, etc. that bypass normal invincibility), the hero will always regain control and avoid being permanently locked. -
推荐在游玩房随和陷阱随机时使用 Benchwarp 模组 放椅子模组可方便地设置重生点,配合陷阱随机与房间随机功能,大幅提升游戏体验。 两者已完美兼容,无需额外配置。
-
Recommended to use Benchwarp when playing with room randomizer and trap randomizer Benchwarp allows convenient respawn point setting, greatly enhancing the experience when combined with trap and room randomization. Both mods are fully compatible out of the box.
v1.4.3
-
新增尖刺类陷阱分类 独立出“尖刺类”,包含
wp_trap_spikes,organ_spikes,coral_spike,pilgrim_trap_spike,cradle_spikes,slab_spike_ball。 从原“暗雷”、“跳跳乐”、“触发型”中移除这些陷阱,避免分类重叠。 难度配额:初猎 2,专注 4,满溢 6,确保尖刺类稳定生成。 -
Added “Spike” trap category New category “尖刺类” includes
wp_trap_spikes,organ_spikes,coral_spike,pilgrim_trap_spike,cradle_spikes,slab_spike_ball. Removed these traps from original categories (Landmine, Platforming, Triggered) to avoid overlap. Difficulty quotas: Beginner 2, Focused 4, Overflow 6, ensuring consistent spike generation. -
平台缩放精细化 所有“平台类1”中的平台,除三个小平台(
small_grey_coral_plat,small_red_coral_plat,shell_small)外,统一缩小至原来的 1/3(0.33 倍)。 小平台保持原大小,避免过于微小影响跳跃。 -
Platform scaling refined All platforms in “平台类1” except three small ones (
small_grey_coral_plat,small_red_coral_plat,shell_small) are now scaled to 1/3 (0.33) of original size. Small platforms remain at full size to keep them usable for jumps. -
修复荆棘陷阱缩放错误 将荆棘(
ThornTraps)的缩放从错误的(0.5, 1, 0.33)修正为正确的(0.33, 0.33, 0.33),恢复预期的三分之一大小。 -
Fixed thorn trap scaling Corrected thorn trap scaling from incorrect
(0.5, 1, 0.33)to intended(0.33, 0.33, 0.33). -
平台表面点纳入陷阱候选(独立生成) 每次全新生成房间时,记录每个平台的上表面中心点(位置 Y + 0.5)。 在原有陷阱生成完毕后,以 30% 概率为每个平台表面点额外生成一个随机陷阱(陷阱池排除岩浆和下落类)。 额外生成的陷阱遵守所有常规规则(距离门、拾取物、其他陷阱等),并与主陷阱一同存入缓存。 此机制独立于原有配额,不干扰原有陷阱生成顺序和数量。
-
Platform top surfaces as independent trap spawn points On each fresh room generation, record the top center point of every platform (position Y + 0.5). After main trap generation, spawn an extra random trap on each platform surface with 30% chance (trap pool excludes lava and falling types). Extra traps respect all standard rules (distance to doors, pickups, other traps) and are cached alongside main traps. This mechanism operates independently of original quotas, preserving existing trap generation order and count.
-
平台生成时的空间检测范围缩小 将平台生成的包围盒检测从 20×20 缩小至 10×10,允许平台放置在更紧凑的空间,减少因空间不足而无法生成平台的情况。
-
Reduced platform placement bounding box Changed platform generation overlap check from 20×20 to 10×10, allowing platforms to fit in tighter spaces and reducing placement failures.
-
新增小平台硬编码列表 定义
SmallPlatforms集合,用于标记不需要缩放的平台。目前包含三个小型平台,可根据需要扩展。 -
Added hardcoded list of small platforms Defined
SmallPlatformsset to mark platforms that should not be scaled. Currently includes three small platforms; can be extended as needed. -
种子重置时平台表面点列表同步清空 在
ClearAllCache中增加_platformSurfacePoints.Clear(),确保更换种子后平台点列表被重置,避免残留点影响新种子下的陷阱生成。 -
Platform surface points cleared on seed reset Added
_platformSurfacePoints.Clear()inClearAllCache, ensuring the platform point list is reset when seed changes, preventing stale points from affecting new generation.
v1.4.2
-
难度机制大幅调整,挑战方向改变 陷阱不再只是静止的机关,而是有概率获得“生命化”效果——会自己移动(滑动、折线路径、钟摆)或做出原地动画(旋转、缩放、闪烁、抖动、浮动)。 玩家需要面对动态变化的陷阱布局,考验实时反应而非背板。
-
Difficulty system overhauled, challenge direction changed Traps are no longer static hazards. They now have a chance to become “alive” — moving (patrol, zigzag, swing) or performing stationary animations (spin, pulse, flicker, jitter, bounce). Players must adapt to dynamic trap behaviors, testing real‑time reactions instead of memorization.
-
陷阱移动系统大幅扩展 原有移动方式(贴地滑动、折线路径、钟摆摆动)基础上,新增 5 种原地动画: 旋转、缩放脉冲、闪烁(时隐时现)、微小抖动、上下浮动。 所有陷阱(岩浆除外)获得移动效果时,从全部 8 种风格中等概率随机选择一种。
-
Trap movement system expanded Added 5 stationary motion types on top of existing styles (surface patrol, zigzag, needle swing): Spin, Pulse, Flicker, Jitter, Bounce. When movement is enabled, traps now randomly choose from all 8 styles with equal chance (lava excluded).
-
彻底修复陷阱重叠问题 每次进入房间前清空所有旧陷阱,且所有分类的陷阱均参与位置去重(原先障碍物/装饰物不检查距离)。 同一位置再也不会出现两个重叠的陷阱,多次进出房间也不会累积副本。
-
Fixed trap duplication All old traps are now cleared before each spawn, and all trap categories participate in distance de‑duplication (previously obstacles/decorations did not). No more overlapping traps at the same spot, no accumulation on room re‑entry.
-
大型陷阱放置优化 将大型陷阱检测半径从 4 恢复为 7,减少齿轮、风扇等陷阱堵住狭窄通道的概率。
-
Large trap placement improved Restored large trap check radius from 4 back to 7, reducing the chance of gears/fans blocking narrow passages.
-
陷阱分类重新划分 根据名称语义,将雕像、生物、幼崽、跳蚤、蚊子、气球、植物、蛋、茧、NPC、雪块、水晶等从“障碍物”移至“装饰物”。 “障碍物”仅保留弹跳类、硬壳、热煤等真正具有交互或伤害的物体。 修复了装饰物因分类重叠而永远无法生成的错误。
-
Trap categories reorganized Reclassified traps by name semantics: moved statues, creatures, bugs, balloons, plants, eggs, cocoons, NPCs, snow chunks, crystals from "Obstacle" to "Decoration". "Obstacle" now only contains bounce objects, crusts, hot coal, etc. Fixed decorations never spawning due to category overlap.
-
墙壁荆棘增加竖向支撑检测 墙壁类陷阱(荆棘)现在要求放置点上下 3 单位内均有墙体表面,避免悬空或穿模。 只有通过该检测的墙面点才被视为有效。
-
Wall thorns now require vertical support Thorn traps (wall category) now require a solid surface both above and below (within 3 units) to prevent floating or clipping. Only wall points passing this check are considered valid.
-
移除所有调试日志 删除了陷阱生成过程中的所有
Plugin.Log输出,减少运行开销和日志噪音。 -
Removed all debug logging Removed all
Plugin.Logcalls during trap generation to reduce runtime overhead and log clutter.
v1.4.1
-
新增加跳跳乐与平台分类存储
- 在 TrapPreloader 中新建"跳跳乐1"分类,包含 43 个弹跳物
- 在 TrapPreloader 中新建"平台类1"分类,包含 18 个平台
- 目前仅作存储,不参与陷阱配额生成,不影响原有陷阱系统
- 旧齿轮分类改名"旋转齿轮",避免与新的跳跳乐混淆
-
Added bounce and platform category storage
- New "跳跳乐1" category in TrapPreloader with 43 bounce objects
- New "平台类1" category in TrapPreloader with 18 platforms
- Currently storage only, not used by quota system, no impact on existing traps
- Old gear category renamed to "旋转齿轮" to avoid confusion
-
新增弹跳物生成系统
- 每个陷阱旁边会尝试放置一个弹跳物,距离固定为 6 格,角度在 -30° 到 30° 之间
- 先在陷阱斜上方找位置,找不到再在斜下方找,两边都不行才放弃
- 弹跳物之间至少间隔 8 格,避免挤在一起
- 弹跳物至少离地 3 格,不会卡进地面
- 路径和目标点都没有地形阻挡才放置,不会穿墙
- 拾取物周围 7 格内不放置,不干扰正常拾取
- 弹跳物位置随种子固定,同一种子进同一房间位置不变
-
Added bounce object generation
- Each trap gets one bounce object placed 6 units away, angle between -30° and 30°
- Tries above the trap first, then below if no valid spot found
- Minimum 8-unit spacing between bounce objects
- Placed at least 3 units above ground, won't clip into floors
- Raycast checks ensure no terrain blocking the path or target point
- Keeps 7-unit distance from pickups, won't interfere with items
- Positions are seed-determined and stay consistent on revisit
-
新增平台生成系统
- 每个陷阱周围会尝试放置最多两个平台,距离在 6 到 10 格之间
- 平台要求周围 20×20 的矩形范围内没有任何地形,确保有足够空间
- 平台之间至少间隔 8 格
- 生成不了两个就生成一个,一个都生成不了就跳过
- 平台位置随种子固定,同一种子进同一房间位置不变
-
Added platform generation
- Each trap gets up to two platforms at 6–10 units distance
- Platforms require a 20×20 clear area with no terrain overlap
- Minimum 8-unit spacing between platforms
- Spawns one platform if two can't fit, skips if none work
- Positions are seed-determined and stay consistent on revisit
v1.4.0
-
纹章随机池移除巫妪诅咒纹章
- 随机神龛现在不会产生“巫妪(诅咒版)”纹章,避免无法切换和无法回血的极端情况
- 正常的巫妪纹章仍然可以随机获得
-
Removed cursed Witch crest from the crest random pool
- Shrines no longer give the cursed Witch_v2 crest, preventing unswappable/no-heal states
- The normal Witch crest can still be obtained randomly
-
修复冰冻陷阱在相邻房间连续出现的问题
- 如果上一个房间有冰冻效果,进入下一个房间时会自动清除冰冻陷阱,并不会生成新的冰冻
- 不再依赖房间随机化连接文件,改为实时检测
-
Fixed frost traps appearing in consecutive rooms
- If the previous room had a frost marker, entering the next room now clears any frost traps and prevents new ones from spawning
- No longer relies on room connection files, now uses real-time detection
-
修复缓存导致同类陷阱扎堆排列的问题
- 房间缓存重新生成时,对所有已验证的陷阱进行一次随机打乱,避免相同类型陷阱连续放置
-
Fixed cached traps clumping together by type
- When reusing room caches, the validated trap list is now shuffled before spawning, preventing consecutive placement of the same trap type
-
面板外观改善
- 添加了自定义面板背景图(4.png),拉伸覆盖整个设置窗口
- 难度选择按钮支持自定义精灵图(1.png、2.png、3.png),图片作为按钮背景,宽度与按钮对齐,文字居中标示
- 对应图片需放入 nandu 文件夹内
-
Panel visual improvements
- Added a custom background image (4.png) that stretches across the entire settings window
- Difficulty buttons now support custom sprite backgrounds (1.png, 2.png, 3.png); images align with button width while text remains on top
- Images are loaded from the nandu folder
v1.3.8
-
修复了部分触发类陷阱的生成位置和朝向
- 现在这些陷阱会先生成触发器(压力板或触发区),再根据规则在触发器周围生成陷阱本体
- 小摇摆陷阱放在触发器正上方 8 格
- 大摇摆陷阱放在触发器正上方 15 格
- 腐汁陷阱放在触发器右边 10 格
- 碎石区在触发器上方 0.5 格
- 猎人地雷翻转 180 度,藏在触发器下方 1 格
- 猎人镰刀放在触发器正上方 6 格,保持原来的方向不变
- 其他触发类陷阱暂不调整
-
Fixed spawn positions and rotations for some triggered traps
- Traps now spawn their activator first, then place the trap body according to offset rules
- Small swing trap placed 8 units above its activator
- Large swing trap placed 15 units above its activator
- Bilewater trap placed 10 units to the right of its activator
- Rubble field placed 0.5 units above its activator
- Hunter landmine flipped 180 degrees and placed 1 unit below its activator
- Hunter sickle trap placed 6 units above its activator, no rotation
- Other triggered traps remain unchanged
v1.3.7
-
修复面板难度按钮切换无反应
- 切换难度后自动清空当前陷阱并重新生成
-
Fixed difficulty buttons not responding on the panel
- Switching difficulty now clears current traps and regenerates them
-
新增陷阱生命化开关
- 右侧面板难度下方增加"陷阱生命化"按钮,独立控制陷阱是否获得移动能力
- 关闭后已有陷阱不会自动清除,新生成的陷阱不再附加移动效果
- 开启后清空当前陷阱并重新生成,新陷阱按 40% 概率附加随机运动
- 开关状态自动保存,重启游戏保持上次设定
-
Added trap movement toggle
- "Trap Life" button added below difficulty settings on the right panel, independently controls whether traps gain movement
- When disabled, existing traps remain but new traps will not receive movement
- When enabled, clears current traps and regenerates them with 40% chance of random movement
- Toggle state is automatically saved and persists across game restarts
功能使用说明
陷阱难度:点击「初猎」「专注」「满溢」三个按钮之一即可切换难度。选中的按钮会变为绿色高亮。切换后房间内的陷阱会立刻清空并按新难度重新生成。
陷阱生命化:位于难度选择下方,显示「陷阱生命化」及当前开关状态(开/关)。点击即可切换。打开时,每次进入房间生成的陷阱有概率自己动起来(沿平台滑动、走折线路、或像钟摆摆动),速度可能是温顺、调皮或忽快忽慢。关闭后新生成的陷阱则保持静止。开关状态会自动保存。
v1.3.6
-
适配 Architect 3.28.0
- ObjectPlacement 构造函数新增 layer 参数,补齐陷阱生成与激活器的反射调用
-
Adapted to Architect 3.28.0
- Added missing layer parameter to ObjectPlacement constructor for trap spawning and activator reflection
-
修复场景切换时陷阱随机自动关闭
- 移除 OnSceneLoaded 中重复的 Initialize 调用,开关状态不再被配置文件覆盖
-
Fixed trap randomizer turning off on scene transition
- Removed redundant Initialize call in OnSceneLoaded, preventing state overwrite from config file
-
新增陷阱移动系统
- 实现贴碰撞箱往复、随机折线闭合路径、指针式摆动三种持续移动方式
- 加入性格系统:友善(慢速)、调皮(快速)、阴险(时快时慢)
- 陷阱生成时有 40% 概率附加随机移动和性格(岩浆除外)
-
Added trap movement system
- Implemented three continuous movement styles: surface patrol, zigzag loop, and needle swing
- Added personality system: Friendly (slow), Playful (fast), Sinister (alternating speed)
- 40% chance for traps (except lava) to gain random movement and personality on spawn
v1.3.5
-
调整陷阱分类生成配额
- 各分类最大生成数量固定:暗雷(1/3/5)、跳跳乐(1/3/5)、窄道(1/3/5)、平台类(1/3/5)、墙壁(1/3/5)、天花板(3/3/5)、障碍物(2/4/5)、装饰物(2/3/5)、触发型(3/5/7)、追逐型(0/1/2),场景伤害类完全由独立事件控制
- 冰霜印记按难度概率:Beginner不出现,Focused 10%,Overflow 20%
- 额外岩浆池固定30%概率且仅在水体区域生成
-
Adjusted trap category quotas
- Maximum spawn counts locked: Landmines(1/3/5), Platforming(1/3/5), Narrow(1/3/5), Platforms(1/3/5), Walls(1/3/5), Ceiling(3/3/5), Obstacles(2/4/5), Decorations(2/3/5), Triggered(3/5/7), Chase(0/1/2), scene hazards fully event-driven
- Frost markers probabilistically: Beginner never, Focused 10%, Overflow 20%
- Extra lava pool at fixed 30% chance, water surfaces only
-
技能随机新增法术动画
- 随机获得的技能在施放时播放对应角色动画,与技能类型绑定
-
Skill randomizer now plays spell animations
- Randomly acquired skills trigger matching character animations on cast, bound to skill type