Package Structure Example
Please refer to the examples in the GitHub repository
A custom form consists of two parts: a resource pack and a datapack. The resource pack is responsible for implementing form models and animations, while the datapack is responsible for defining form abilities, types, body types, etc.
For a complete custom form, both need to be loaded and applied simultaneously
Resource Pack Structure
example_form_resourcepack // Resource pack root directory
├── assets
│ ├── example_namespace // Namespace for custom forms. Always use your own namespace to prevent conflicts
│ │ ├── lang // Localization file directory
│ │ │ ├── en_us.json // English localization file
│ │ │ └── zh_cn.json // Chinese localization file
│ │ ├── rich_lang // Rich text localization file directory
│ │ │ ├── en_us.json // English localization file
│ │ │ └── zh_cn.json // Chinese localization file
│ │ └── player_animation // Custom animation file directory
│ │ └── form_example_idle.json // Custom animation file example, exported using AzureLib format
│ └── orif-defaults // Custom model and animation file directory, using OriginFur mod format
│ ├── furs // Custom form model JSON definition directory
│ │ └── example_namespace.form_example.json // JSON definition file for custom form model, including configurations for textures and soft bones
│ ├── geo // Custom form model directory
│ │ └── form_example.geo.json // Exported model file in AzureLib geo format
│ └── textures // Custom form model texture directory
│ └── form_example.png // Custom form model texture
└── pack.mcmeta // Package description file
Datapack Structure
example_form_datapack // Datapack root directory
├── data
│ ├── example_namespace // Namespace for custom forms, consistent with the namespace in the resource pack
│ │ ├── origins // Origins' origin definition directory
│ │ │ └── form_example.json // Origin definition corresponding to custom form
│ │ ├── origins_power_extra // Directory for additional custom abilities to be mounted on existing forms
│ │ │ └── append_transform.json // JSON for additional abilities mounted on existing forms, needed to implement transformation triggers
│ │ ├── powers // Origins' powers custom ability directory
│ │ │ ├── custom_eat_amethyst_shard.json // Example of powers custom ability definition
│ │ │ └── custom_night_vision.json
│ │ └── ssc_form // Form definition JSON file directory
│ │ └── form_example.json // Custom form definition JSON file. Animations, form types, body types, etc. are all defined here
│ └── origins\origin_layers // origin_layers directory
│ └── origin.json // origin_layers registration file. Only by adding example_namespace:form_example in it can it be recognized by origins
└── pack.mcmeta // Package description file