Native Character Editor workbench¶
Open Helpy's Profile → Character workspace. Enable RuneSchema's authoring tools before launching the game, then activate the editor session if prompted.
Workflow¶
- Open Profile → Character. Follow current character identifies the live player by GUID and platform, then opens an isolated saved snapshot. It never edits the live character or the original Steam/Epic/Xbox provider file.
- For a new character, wait for the game's first gameplay save. While the Character workspace is visible and no unique match exists, Helpy checks again at most once every ten seconds, stopping once matched. Refresh saves remains available. Selecting another save or importing JSON turns following off; switching an open draft requires confirmation.
- Open Character, the unified workspace. Switch the shared viewport between Full body, Portrait, and Item without leaving the inventory workbench. Under its Appearance tools, edit character name, body, face, hair and beard presets, skin, eyes, hair color and eyebrow color. The painter's kit has separate Skin, Eyes, Hair and Eyebrows tabs. Numbered wells select the game's native material palette slots; the rendered character shows the actual color, rather than an invented RGB swatch. Changes are staged in memory. Body changes select a compatible native face/beard family atomically when needed; the review includes those linked edits.
- Select the Loadout tools to fit wearable Item Bay entries onto matching native equipment slots. This outfit is a visual draft only: it does not change the saved loadout or equip the live player. Unfilled body/leg slots use the native Adventurer base outfit. Full-body framing includes fitted gear bounds so tall headwear is not cropped by the normal portrait framing.
- Select the Item viewport to choose and rotate a native item display mesh from the same Item Bay. Held equipment's class-default skeletal presentation mesh is preferred over a generic pickup mesh; other entries use their native static mesh. Some game entries contain only placeholder pickup artwork, so a native asset reference is not a guarantee of a polished model. Arbitrary gameplay Blueprints are never spawned for this view.
- Browse saved inventory, quick slots, ammo, runes, quest items, personal storage or equipped records. Saved instances use the same placards as Item Bay, with stack counts and equipped markers. Select a card to edit its stack, or enable the advanced record table for raw record details. Native page descriptors are used when loaded. A category-based display fallback is explicitly labeled; it does not authorize insertion into an unverified slot.
- Drag an Item Bay entry onto the saved inventory grid or addition target, choose quantity, and confirm the staged addition. New records currently go only into a verified general Inventory slot, irrespective of the selected browsing tab. Insertion requires an unambiguous loaded persistence ID, native stack limit and an empty verified slot. Custom item classes require an existing same-item save template. Special-tab eligibility and personal-storage capacity must be independently verified before enabling insertion there.
- Drag a saved record onto the deletion target to select it, then review and confirm removal. Removing equipped inventory records also unlinks their native loadout references. Existing storage records can be removed or have their native stack count edited.
- Choose Review save changes, inspect the diff, confirm, then Export edited character copy. Export creates a uniquely named copy under RuneSchema's runtime job exports. It never overwrites the source, installs the copy, attaches it to a live player, or converts it into Xbox WGS storage.
Rendering and safety boundaries¶
- The preview and appearance/loadout tools occupy the top area; saved inventory and Item Bay sit in separate panels below. Narrow windows stack these panels. The Inventory & Item Bay workspace tab omits the preview/tools. A jump button scrolls directly to the inventory grid in short windows. Dedicated skill-level controls remain unavailable until native skill identities and XP-to-level contracts are verified; raw saved fields remain under Advanced / export.
- Drag to rotate, scroll to zoom, or use Left, Right, Up, Down, Zoom and Reset view controls. Up and Down orbit the camera vertically without moving the character or its modular gear.
- Requires the running game's frontend world. Live-world and game-closed rendering are not enabled in this implementation.
- A transient, non-replicated, collision-disabled scene owns its preview actors and one 512×512 target. World changes, idle heartbeat expiry and explicit stop release the scene.
- Appearance/outfit changes rebuild only the cosmetic preview actor, allow asynchronous meshes to settle, and synchronize compatible meshes to one native reference animation at time zero. All modular components are then frozen together. Rotation and zoom reuse this settled actor rather than reapplying customization to frozen head/hair followers.
- The animation dropdown defaults to Standard fitting pose. Its other current choice is the character-preview actor's own native animation, with explicit Play/Pause controls. Playback runs only on owned cosmetic actors and does not change the save. Returning to the fitting pose resets all compatible modular parts to time zero. Arbitrary animation asset paths, combat clips and gameplay actors are not accepted. Animated frames bypass the static angle cache and capture at no more than about 30 Hz; pause or choose the fitting pose to return to idle capture reuse.
- Frames travel through a bounded local memory mapping, not a PNG file per frame. Helpy uploads changed pixels only. A 96 MiB LRU caches 2-degree views; capture is demand-driven and paced at no more than about 30 Hz. Idle views do not continually capture. First asset loading and synchronous native readback can still cost time; this is not a 60 FPS performance guarantee.
- Hair and eyebrow colors are separate verified save handles. A separate beard-color handle is not exposed by the verified native contract, so that control is unavailable rather than writing an invented field.
- Appearance tables, paths, revisions, destination slots and export receipts are checked on the host. Unknown save fields and character identities are preserved. A changed source invalidates the session's export.
- Save-format reference and attribution: RSDWTools by RSDWArchive. The reference website is not embedded and is not used to impose its older inventory-slot limits. Rendering and transport are native RuneSchema/Helpy code.
Verification¶
The isolated Steam frontend test uses a private BREWER copy and private app-data directories without entering a world. It checks native table enumeration, head/body rendering, rotation/cache reuse, wearable fitting, item mesh capture, appearance/name staging, reviewed copy export and explicit discard. The original BREWER file is SHA-256 checked before and after. Separate production UI tests cover 1280×900, 960×700 and 760×560 layouts, editor revision/export protection, shared-header parity, host transport and a real D3D pixel-channel upload. These do not establish Game Pass live-world or Xbox save-provider support.