Menu screens
This page builds on screens, where the Paimon menu's shell, its pause of the world and its entries are built, on characters, whose reader draws Paimon beside the menu, and on the HUD, whose Paimon button opens it. What the shell lacks is the game's own look: its layout is a stand-in, its entries carry no icons, Paimon does not float beside it, and its side bar's Time and Settings open placeholders.
Decisions
- Time is the game's own control of the clock. Its screen sets an hour at least half an hour ahead of the current one and at most two days on, never back, as the game allows. It sets the running clock's minute,
gameClock.minutesofWorld/Windrise, and neverheldMinutes, which holds the clock still for a reference's frame; the clock runs on from the hour set. Its dial counts whole turns as days, as the game's does, and a confirm lands at the target's minute of the day. It is the world's one control of the hour, and that control is the game's: no clock control of the world's own is drawn. - Time is laid out from a public clip until its recording lands.
a4_J84iMqR0on YouTube, 60 seconds at 1920 by 1080, shows the English PC client's Time screen opened from the menu, its dial turned and confirmed. Its frame is the screen's reference, andmenu-time.mkvre-measures it later without gating the build. - Settings shows only the rows the world has. Each row the world backs is laid out with the game's name, range and default. Graphics Quality is the renderer's quality tier. Volume, Music Volume and SFX Volume run from 1 to 10 over the music's player and the sound effects. Game Language offers the fifteen languages of game text. The camera sensitivities and default distance belong to the follow camera. Settings are kept in the browser, as the game keeps its settings per device. A row the world does not back is left out, never drawn disabled.
- Paimon is drawn as a character is. She appears to the right of the menu with her idle animations, as the game shows her. She is read from her official model and drawn by characters' reader and toon material, her motion fitted to the game's own clips, so nothing of the game's files ships.
- Paimon waits for an official model. If HoYoverse's published packs hold no Paimon model, the menu ships without her: she is decoration, and the menu works whole without her. Characters are drawn only from official models, so no stand-in is made, and she is added once an official model is published.
- Community and Feedback are drawn disabled, Training Guide is not drawn. The still draws Community and Feedback as entries, so they keep their tiles disabled; the world opens no page of their own. Training Guide is in no still the references hold, so it stays out of the contents while its screen remains in the model.
- The profile card shows what the world backs. Signed in, it shows the account's name and avatar; signed out, the game's default name, Traveler. Adventure Rank and World Level join it with the Adventure Rank proposal's system, and the signature, namecard, birthday and UID each join when the system behind it lands.
- Measured like the login, in the game's words. Each screen is a component of the
Menusection in the world package, laid out by its RectTransform tree throughGameRect. Its blocks are found and fitted as the HUD's are. Its entry icons are traced into paths of our own, and it is compared over a recording of the English PC client. The shell's stand-in sizes and colours give way to the fitted rects, and its labels stay theGameTextKeys they are.
How it works
flowchart TD REC["A recording of the English PC client's menu"] --> BLOCK["The menu's block: its DerivedAssetComponentMap entry"] BLOCK --> RECTS["genshin:assets interface: interfaceRects.json"] RECTS --> MENU["The Paimon menu laid out by GameRect"] ICONS["The entries' icons, traced"] --> MENU MODEL["Paimon's official model, through the characters' reader"] --> MENU MENU -->|"Time"| TIME["Time: an hour from half an hour to two days ahead"] TIME --> CLOCK["The world's held hour"] MENU -->|"Settings"| SET["The rows the world backs"] SET --> STORE["The browser's storage"] SET --> KNOBS["Quality tier, volumes, language, camera"]
Scope and order
Built: the references, the Paimon menu's layout and icons, the Graphics tab's header, and the quit prompt Quit Game opens. The Paimon menu is measured at 5.35% over its side bar and panel (FLIP 0.2237), its frame icons traced at three times the still's pixels; the header is 2.01%. The prompt is drawn at a provisional scale, unscored until its whole frame is recorded. The as-built state is in screens.
Still open, in order:
- Time, built now from the public clip.
- The rule. A new
getTimeTargetMinutes.tstakes the clock's minute and the advance the dial asks for, clamps the advance toTIME_MINIMUM_ADVANCE_MINUTES(30) andTIME_MAXIMUM_ADVANCE_MINUTES(2880), both added toservices/menu/constants.ts, and returns the target's minute of the day modulo the engine'sMINUTES_PER_DAY.getTimeTargetMinutes.test.tsbeside it asserts an advance of 10 lands 30 on, one of 3000 lands 2880 on, and an advance past midnight wraps. - The reference.
pnpm -C scripts genshin:parity clip https://www.youtube.com/watch?v=a4_J84iMqR0 --from 0 --to 60 --name time, thenpnpm -C scripts genshin:parity frames yt-a4_J84iMqR0-time.mp4 2for its contact sheet. The builder picks the first still showing the dial at rest with nothing hovered and names it inParityReferenceMapas"menu-time": { capture: "yt-a4_J84iMqR0-time.mp4", screen: "MenuTime", seconds: <second> }. - The screen.
components/Menu/Time/Index.vuewithIndex.fixture.tsdraws the dial, the hour it points at and the Confirm button, laid out in the reference's own pixels asMenu/Paimonis, with its words asGameTextKeys found bypnpm -C scripts genshin:text find "<regex>"and written withgenshin:text write. A pointer dragged round the dial adds its turns to the advance, and Confirm emitsconfirmwithgetTimeTargetMinutes's result. - The wiring.
World/WindriseaddsgameClockto itsdefineExpose, andWorld/Sessionfills#[ScreenKind.Time]withMenuTime, settingwindrise.value.gameClock.minutesonconfirmand closing back to the world. - The check.
pnpm -C scripts genshin:parity compare menu-timewrites its row, and the comparison is queued for the user's eyes under the roadmap's Awaiting the user.
- The rule. A new
- Settings' body: the Graphics Quality row's choices and the store its value is kept in, the Audio tab, and the rows' colours over the blurred world the page has no copy of.
- The quit prompt's scale, from a public clip.
asw7VW5QM1gon YouTube, 46 seconds at 1920 by 1080 (2026), logs out of the English PC client through the menu. It is clipped withgenshin:parity clip ... --from 0 --to 46 --name logout, and the first still holding the prompt whole replaces theexit-promptreference'swikiTitleandplacementwith itscaptureandseconds, soMenu/Exitis scaled to the whole frame.menu-quit-prompt.mkvre-measures it later. - Paimon beside the menu waits on her official model pack being hosted with the others (the user, who uploads the packs); the profile card's signature, namecard, birthday and UID each join as the system behind it lands, its rank and World Level being built.
What this does not propose
- The screens of features the world lacks, among them the shop, the events, the battle pass, co-op, friends, mail and notices, and the Miliastra Wonderland's functions. Their entries stay disabled until each is built.
- The shortcut wheel. It offers the same screens as the menu and earns its place once the menu holds enough of them to choose from; its binding is read already.
- The agent console's entries. Where the console's sessions are reached from in the game's style is the console's rebuild, its own page.
Key files
| File | Role after the change |
|---|---|
packages/genshin-world/src/components/Menu/Paimon/Index.vue | Laid out by the fitted rects, its icons drawn, Paimon by it |
packages/genshin-engine/src/renderer/QualityTierSettingsMap.ts | The tiers the Graphics Quality row chooses between |
packages/genshin-text/src/models/GameTextKey.ts | Gains every label of Time and Settings |
scripts/src/services/genshinAssets/shared/DerivedAssetComponentMap.ts | Gains each screen's block and roots |
scripts/src/services/genshinParity/shared/ParityReferenceMap.ts | Gains each screen's recordings |
New files:
packages/genshin-world/src/services/menu/getTimeTargetMinutes.ts
packages/genshin-world/src/components/Menu/Paimon/Index.fixture.ts
packages/genshin-world/src/components/Menu/Paimon/Index.reference.ts
packages/genshin-world/src/components/Menu/Time/Index.vue
packages/genshin-world/src/components/Menu/Time/Index.fixture.ts
packages/genshin-world/src/components/Menu/Settings/Index.vue
packages/genshin-world/src/components/Menu/Settings/Index.fixture.ts
packages/genshin-world/src/data/menu/interfaceRects.json
Sources
- Paimon Menu, Genshin Impact Wiki: the menu's profile, contents and side bar, and Paimon floating to its right.
- Time, Genshin Impact Wiki: one in-game minute a second, the Time option advancing from half an hour to two days ahead, and the clock paused in the menu but not in photo mode.
- Settings, Genshin Impact Wiki: the graphics quality, the volumes from 1 to 10, the fifteen game languages and the camera's rows, and settings kept per device.
- Shortcut Wheel, Genshin Impact Wiki: the wheel's entries, the same screens as the menu's.