Import / Export
QI supports importing items from MMOItems / NeigeItems, as well as packing content into .qipack for export / import.
🧭 Want the full migration steps + field mapping reference table + dry-run interpretation? See Import / Export Hands-on Manual.
1. Import External Items
Place MMOItems / NeigeItems item configs into the plugins/QinhItems/imports/ directory, then import them with a command.
| Command | Purpose |
|---|---|
/qi imports | Show number of import files |
/qi imports list | List import files |
/qi imports run | Execute import |
/qi imports dry-run | Preview (does not actually import) |
/qi migrate | Migrate legacy item sources (with validation) |
/qi migrate dry-run | Preview migration |
Supported Formats
| Format | Imported Content |
|---|---|
mmoitems | base.*, stats, ability, permission, required-level, required-class, perm-effects |
neigeitems | sections, FancyDrop, actions, actions_file, data |
generic | Fallback for unknown formats |
MMOItems Attribute Mapping
- Core attributes → base values:
attack-damage→base_attack_damage,max-health→base_health,defense→base_defense. - Normal attributes:
attack-speed,magic-damage,armor-penetration,max-mana,mana-regeneration. - Ratio attributes (÷100):
critical-strike-chance→critical_rate,dodge-rating,block-rating,lifesteal.
MMOItems Skill Mapping (ability → trigger)
| MMOItems | QI Trigger |
|---|---|
| attack / on_hit | on_damage |
| damaged / when_hit | on_hit |
| right_click / left_click / shift_* | same name |
| sneak | shift_toggle |
| kill_entity | on_kill |
| shoot_bow | bow_shoot |
| shoot_trident | trident_throw |
| death / login | death / join |
Restriction Mapping
| MMOItems | QI |
|---|---|
required-level: N | level:N |
required-class: A,B | class:A,B (delegated to QinhItemUseCheckEvent) |
permission: X | permission:X |
API
QinhItemImportService.importAll(dryRun = false): ImportReport
QinhItemImportService.migrateLegacySources(dryRun): ImportReport
QinhItemImportService.importFiles(files, dryRun): ImportReportImportReport contains: number of scanned files, import count, imported IDs, per-format counts, mapped fields, generated sections / affixes, warnings / errors.
2. Content Packs (.qipack)
Pack the current QI content (sections / affixes / layer snapshots referenced by items) into a single file, for easy cross-server distribution.
| Command | Purpose |
|---|---|
/qi packs | Show number of pack files and directory |
/qi packs list | List pack files |
/qi packs export | Export all content to a file |
/qi packs import | Import (= apply / sync) |
/qi packs sync | Sync (refresh + export) |
/qi packs apply | Apply (= sync) |
/qi packs gui | Open the content pack editing GUI |
Export
QinhItemPackExportService.exportAll(targetFileName = "qinhitems-pack.yml"): PackExportReportExport structure: metadata (counts, IDs, per-format distribution, schema version) + sections + affixes + layerSnapshots + each item's section_ids / affix_ids / layer_summary.
Import
QinhItemPackImportService.importFile(file): PackImportReportImport validates whether the declared count matches the actually loaded count (structureMismatch / mismatchSummary); when metadata is missing, it falls back to computing from node keys.
3. Import Artifact Conversion
QinhItemImportArtifacts.toSection(id, mappingResult): QinhSection
QinhItemImportArtifacts.toAffix(id, mappingResult): QinhAffixConvert the import mapping result into sections / affixes, and register them into the layer system.
Next Steps
- Commands: Full list of import / export commands
- Layers & Assembly: Layer snapshots