Components Reference
Quick reference for all React components included in RPGReact. For detailed tutorials, see the Tutorials section.
Navigation & Selection
Chooser
File: menus/src/components/Chooser.tsx Tutorial: Using Chooser and ActorChooser
Generic selectable list with UP/DOWN/OK input handling.
Props:
items: T[]- Array of items to displaychildren: (item: T, selected: boolean, index: number) => ReactNode- Render functionhasFocus: boolean- Whether component should accept inputonItemSelected?(item: T, index: number)- Called on OK pressonItemHighlighted?(item: T, index: number)- Called when selection changesresetSelection?: boolean- Reset to index 0 when items changedefaultSelection?: number- Initial selection index (default: 0)
ActorChooser
File: menus/src/components/ActorChooser.tsx Tutorial: Using Chooser and ActorChooser
Party member selector using Chooser with PartyMemberFull or PartyMemberCompact.
Props:
Extends
BaseMenuScreenPropsonActorSelected(actor: Game_Actor)- Called when actor selecteduseFullView?: boolean- Use full cards vs compact (default: false)
Layout & Structure
BaseMenuScreen
File: menus/src/components/BaseMenuScreen.tsx Tutorial: Using BaseMenuScreen
Base props interface for menu screens.
Props (BaseMenuScreenProps):
pageData: any- Game data and commands from RMMZisTestMenu: boolean- Whether in test modehasFocus: boolean- Whether screen has input focusselected: boolean- Whether screen is selected/active
BaseModal
File: menus/src/components/BaseModal.tsx Tutorial: Using BaseModal
Modal dialog with backdrop and CANCEL key support.
Props:
show: boolean- Whether modal is visibleonHide()- Called when CANCEL pressed or backdrop clickedclassName?: string- Additional CSS classeschildren- Modal content
Input Components
InputNumber
File: menus/src/components/InputNumber.tsx Tutorial: Using Input Number
Numeric input with increment/decrement buttons.
Props:
value: number- Current valuemin?: number- Minimum value (default: 0)max?: number- Maximum value (default: 999999)onChange(value: number)- Called when value changeshasFocus: boolean- Accept inputclassName?: string
InputName
File: menus/src/components/InputName.tsx Tutorial: Using Input Name
Character name input with keyboard grid.
Props:
initialName: string- Starting namemaxLength: number- Maximum name lengthonConfirm(name: string)- Called when confirmedonCancel()- Called when canceledhasFocus: boolean
SelectItem
File: menus/src/components/SelectItem.tsx Tutorial: Using Select Item
Item/weapon/armor selector from party inventory.
Props:
Extends
BaseMenuScreenPropsitemType: 'item' | 'weapon' | 'armor'- What to showonItemSelected(item: any)- Called when item chosenonCancel()- Called on cancel
Confirm
File: menus/src/components/Confirm.tsx Tutorial: Using Confirm
Global confirm dialog provider (Yes/No prompts).
Usage:
Display Components
Icon
File: menus/src/components/Icon.tsx Tutorial: Use Icons
Display icon from IconSet.png.
Props:
icon: number- Icon index (0-based)className?: string
Example:
ActorPortrait
File: menus/src/components/ActorPortrait.tsx Tutorial: Use Actor Portraits
Display actor's face/portrait image.
Props:
actor: Game_Actor- Actor to displayclassName?: string
ImageViewport
File: menus/src/components/ImageViewport.tsx
Display a subsection of a larger image (for sprite sheets).
Props:
src: string- Image pathviewport: { x: number, y: number, width: number, height: number }- Crop rectangleclassName?: string
Example:
ProgressBar
File: menus/src/components/ProgressBar.tsx
Generic progress bar component (used by XPProgresBar, ATB gauges, etc.).
Props:
percent: number- Fill percentage (0-100)outerClassName?: string- Outer container classesinnerClassName?: string- Inner bar classesouterStyle?: React.CSSProperties- Outer container inline stylesinnerStyle?: React.CSSProperties- Inner bar inline styleschildren?: ReactNode- Content overlaid on bar
WindowskinArrow
File: menus/src/components/WindowskinArrow.tsx
Directional arrow for quantity controls, navigation, etc.
Props:
direction: 'up' | 'down' | 'left' | 'right'- Arrow directionsize?: number- Size in pixels (default: 16)className?: string
Party Member Display
PartyMemberFull
File: menus/src/components/PartyMemberFull.tsx Tutorial: PartyMemberFull vs PartyMemberCompact
Full party member card with portrait, stats, HP/MP bars.
Props (PartyMemberProps):
member: Game_Actor- Actor to displaypageData: any- Game dataisTestMenu: booleanhasFocus: booleanselected: booleanclassName?: string
PartyMemberCompact
File: menus/src/components/PartyMemberCompact.tsx Tutorial: PartyMemberFull vs PartyMemberCompact
Compact party member display (name + HP/MP only).
Props: Same as PartyMemberFull
PartyMemberReward
File: menus/src/components/PartyMemberReward.tsx
Battle results party member card with XP animation.
Props:
Extends
PartyMemberPropsrewardExp: number- EXP gained in battle
Features:
Animates XP bar from starting exp to final exp
Shows level-up notifications
Supports skip via exposed ref handle
XPProgresBar
File: menus/src/components/XPProgresBar.tsx Tutorial: Level-Up Animation System
Animated XP progress bar with level-up detection.
Props:
partyMember: Game_Actor- Actor whose XP to displayclassName: string- CSS classesonAnimationComplete?()- Called when animation finishesstartExp?: number- Override starting exptargetExp?: number- Override target exp
Ref Handle:
skip()- Skip animation to final stategetLevelUpEvents(): number[]- Get levels gained
Message & Text Components
Message
File: menus/src/components/Message.tsx Tutorial: Messages, Typewriter, SpecialCodeRenderer
Display RPG Maker message text with text codes.
Props:
text: string- Message text (may contain codes like\C[1],\N[1])pageData: any- Game data for code resolutionclassName?: string
Typewriter
File: menus/src/components/Typewriter.tsx Tutorial: Messages, Typewriter, SpecialCodeRenderer
Text that appears character-by-character.
Props:
text: string- Text to displayspeed?: number- Characters per second (default: 20)onComplete?()- Called when typing finishesskip?: boolean- Show all text immediately
SpecialCodeRenderer
File: menus/src/components/SpecialCodeRenderer.tsx Tutorial: Messages, Typewriter, SpecialCodeRenderer
Parse and render RPG Maker text codes (colors, icons, names).
Props:
text: string- Raw text with codespageData: any- Game data
ScrollingText
File: menus/src/components/ScrollingText.tsx
Auto-scrolling text (for credits, long messages).
Props:
text: string- Text to scrollspeed?: number- Scroll speed in pixels per secondonComplete?()- Called when scrolling finishes
Utility Components
Minimap
File: menus/src/components/Minimap.tsx
Minimap display for current map.
Props:
pageData: any- Game datawidth: number- Minimap width in pixelsheight: number- Minimap height in pixelsclassName?: string
CancelButton
File: menus/src/components/CancelButton.tsx
Standard cancel/back button component.
Props:
onClick()- Click handlerlabel?: string- Button text (default: "Cancel")className?: string
KeyGrid
File: menus/src/components/KeyGrid.tsx
Keyboard grid for name input (used internally by InputName).
Props:
onKeySelected(char: string)- Called when key pressedhasFocus: booleanlocale?: string- Keyboard layout (default: "en_US")
Shop Components
ShopTradeList
File: menus/src/components/ShopTradeList.tsx Tutorial: Shop System
Buy/Sell item list with quantity controls.
Props:
mode: 'buy' | 'sell'- Trade modeitems: any[]- Items to displayhasFocus: booleanpageData: anyselectedItem: any- Currently highlighted itemonHighlight(item)- Called when selection changesonActivate(item, qty, mode)- Called on OK pressgetQty(item): number- Get item quantityincQty(item, delta?)- Increase quantitydecQty(item, delta?)- Decrease quantitycanAct(item, qty): boolean- Whether action is allowedgetUnitPrice(item): number- Price per unitgoldData: { value, unit, unitColor }- Player's gold info
Battle-Specific Components
BattleAtb
File: menus/src/views/battle/BattleAtb.tsx
ATB gauge display for Active Time Battle systems.
BattleLog
File: menus/src/views/battle/BattleLog.tsx
Scrolling combat log.
BattleParty
File: menus/src/views/battle/BattleParty.tsx
Battle party member status display.
BattleInput
File: menus/src/views/battle/BattleInput.tsx
Battle command menu (Attack, Skill, Guard, Item).
TargetCursor
File: menus/src/views/battle/TargetCursor.tsx
Visual cursor for target selection.
SubSelectionWindow
File: menus/src/views/battle/SubSelectionWindow.tsx
Skill/Item selection submenu during battle.
See Battle System Architecture for detailed battle component documentation.
Context Providers
InputContext
File: menus/src/components/InputContext.tsx Tutorial: InputContext
Global input handling provider. Access via useInputContext().
Methods:
addEventListener(id, mode, key, handler)- Register input handlerremoveEventListener(id)- Unregister handler
Modes:
'trigger'- Fire once per press'repeat'- Fire repeatedly while held
Usage Tips
MobX Observers
Many components are wrapped with observer() to react to game state changes. When using these components:
Ref Handles
Components that support skipping animations expose ref handles:
Focus Management
Components with hasFocus prop only accept input when focused:
See Also
Tutorials - Detailed guides for key components
Battle System Architecture - Battle component deep dive
State Management - Best practices for component state
Last updated