Phichain supports multiple chart formats, enabling seamless conversion between different Phigros charting ecosystems. Each format has its own strengths and use cases.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ivan-1f/phichain/llms.txt
Use this file to discover all available pages before exploring further.
Supported Formats
Phichain
Native format with advanced features and full toolchain support
Official
Official Phigros format for game compatibility
RPE
Re:PhiEdit format with enhanced easing support
Primitive
Internal intermediate representation
Format Comparison
| Feature | Phichain | Official | RPE | Primitive |
|---|---|---|---|---|
| File Extension | .json | .json | .json | .json |
| Easing Support | Full | Linear only | Full | Full |
| BPM Changes | Multiple | Single per line | Multiple | Multiple |
| Child Lines | Yes | No | Partial | No |
| Curve Notes | Yes | No | No | No |
| Game Compatible | No | Yes | Via conversion | No |
| Editor Support | Phichain Editor | Official | Re:PhiEdit | N/A |
Conversion Flow
All format conversions in Phichain go through the Primitive format as an intermediate representation: This architecture ensures:- Consistent conversion logic
- Easy addition of new formats
- Preservation of common features
- Predictable data transformations
When to Use Each Format
Phichain Format
Phichain Format
Use when:
- Creating charts in Phichain Editor
- You need advanced features like child lines or curve notes
- Working with complex BPM changes
- Collaborating with other Phichain users
- Full feature set
- Best editor integration
- Human-readable structure
- Version migration support
Official Format
Official Format
Use when:
- Exporting for gameplay in official Phigros
- Sharing charts with players
- Testing in the actual game
- You need maximum compatibility
- Direct game compatibility
- Widely supported
- Well-documented structure
- Battle-tested format
- Linear easing only (non-linear gets approximated)
- Single BPM per line
- No advanced features
RPE Format
RPE Format
Use when:
- Importing charts from Re:PhiEdit
- You need easing function support
- Working with event layers
- Collaborating with RPE users
- Rich easing support
- Event layer system
- Popular in community
- Re:PhiEdit compatible
Primitive Format
Primitive Format
Use when:
- Debugging conversion issues
- Writing custom tools
- Understanding internal structure
- Implementing new format support
- Simple, normalized structure
- Easy to parse and generate
- Core feature set only
- Format-agnostic
Conversion Examples
- CLI
- Rust API
Compatibility Notes
Easing ApproximationWhen converting non-linear easing to Official format, curves are approximated by breaking them into multiple linear segments (1/32 beat intervals). This maintains visual accuracy while staying compatible.
Version Migration
Phichain format supports automatic migration between versions:Next Steps
Phichain Format Spec
Deep dive into the native format structure
Conversion Tool
Learn format conversion workflows