# EasyBallistics JSON Import/Export Tool ## Overview The EasyBallistics JSON Import/Export Tool allows you to import and export bullet properties and material response configurations as JSON files. This is useful for: - Sharing ballistic configurations between projects - Backing up and versioning ballistic data - Batch editing configurations outside of Unreal Engine - Integration with external ballistics calculators ## Accessing the Tool 1. In the Unreal Engine editor, go to **Window > Ballistics JSON Import/Export** 2. This will open the JSON Import/Export tool window ## Features ### Bullet Properties Export/Import **Export**: Creates a JSON file with all mathematical bullet properties including: - Basic properties (grain weight, diameter, length, bullet type, material) - Ballistic coefficients (G1/G7) - Penetration properties (hardness, energy thresholds, expansion) **Import**: Loads bullet properties from a JSON file and can create new bullet property assets ### Material Response Export/Import **Export**: Creates a JSON file with material response settings including: - Artistic properties (penetration, ricochet settings) - Spalling properties (fragment generation) - Mathematical material properties (density, hardness, strength values) **Import**: Loads material response configurations from JSON files ## JSON Format Examples ### Bullet Properties JSON Structure ```json { "GrainWeight": 55.0, "DiameterInches": 0.224, "LengthInches": 0.825, "BulletType": 0, "BulletMaterial": 3, "BallisticCoefficientG1": 0.151, "BallisticCoefficientG7": 0.076, "UseG7Model": false, "SectionalDensity": 0.0, "BulletHardness": 15.0, "PenetrationEnergyThreshold": 58.0, "ExpansionVelocityThreshold": 1800.0, "MaxExpansionMultiplier": 1.5 } ``` ### Material Response JSON Structure ```json { "PenTraceType": 0, "NeverPenetrate": false, "PenetrationDepthMultiplier": 1.0, "PenetrationNormalization": 0.0, "PenetrationNormalizationGrazing": 0.0, "PenetrationEntryAngleSpread": 0.0, "PenetrationExitAngleSpread": 0.0, "NeverRicochet": false, "RicochetProbabilityMultiplier": 1.0, "RicochetRestitution": 0.5, "RicochetRestitutionInfluence": 0.0, "RicochetFriction": 0.5, "RicochetFrictionInfluence": 0.0, "RicochetSpread": 0.0, "EnableSpalling": false, "SpallVelocityThreshold": 50000.0, "SpallFragmentCount": 3, "SpallSpreadAngle": 45.0, "SpallVelocityMultiplier": 0.3, "SpallMassMultiplier": 0.1, "UseMathematicalProperties": false, "MathematicalProperties": { "DensityGPerCm3": 7.85, "MaterialHardness": 200.0, "TensileStrengthMPa": 400.0, "YieldStrengthMPa": 250.0, "ElasticModulusGPa": 200.0, "BallisticLimitVelocity": 2000.0, "PerforationCoefficient": 1.0, "EnergyAbsorptionCoefficient": 0.7, "EnableMathematicalSpalling": false, "SpallStrengthMPa": 150.0, "CriticalStressFactor": 2.5, "FragmentVelocityEfficiency": 0.25, "AverageFragmentMassRatio": 0.08, "FragmentSizeExponent": -1.6, "MaxFragmentDensity": 50.0 } } ``` ## Enum Values Reference ### BulletType - 0: Full Metal Jacket - 1: Hollow Point - 2: Soft Point - 3: Armor Piercing - 4: Armor Piercing Incendiary - 5: Tracer - 6: Match Grade - 7: Frangible - 8: Lead Round Nose - 9: Wadcutter - 10: Semi-Wadcutter - 11: Custom ### BulletMaterial - 0: Lead - 1: Lead-Antimony - 2: Copper - 3: Copper Jacket - 4: Brass - 5: Steel - 6: Tungsten - 7: Bismuth - 8: Zinc - 9: Custom ### PenTraceType - 0: Back Trace - 1: By Component - 2: Double Sided Geometry ## Usage Tips 1. **Backup Before Import**: Always backup your existing assets before importing new configurations 2. **Validation**: The tool performs basic validation but always test imported configurations in your project 3. **Version Control**: Include JSON files in your version control system for configuration tracking 4. **Batch Operations**: You can modify multiple configurations by editing JSON files in bulk ## Technical Notes - The tool uses Unreal Engine's JSON parsing system for reliability - All numeric values maintain their original precision - Boolean and enum values are preserved exactly - The tool supports the complete EasyBallistics property set