Skip to main content

Troubleshooting XML

Common XML issues and how to fix them.

Validation Tools

Online Validators

  1. FreeFormatter XML Validator
  2. XMLvalidation.com
  3. W3Schools XML Validator

VS Code Validation

  1. Install "XML" extension
  2. Files validate automatically
  3. Errors show in problems panel

Command Line

# Using Windows PowerShell
[xml](Get-Content "file.xml")

# Using WSL/Linux
xmllint --noout file.xml

Common Errors

1. Unclosed Tags

Error: Expected closing tag

<!-- WRONG -->
<vehicle>
<name>Car</vehicle>
</name>

<!-- CORRECT -->
<vehicle>
<name>Car</name>
</vehicle>

2. Missing XML Declaration

Error: Not a valid XML document

<!-- WRONG - Missing declaration -->
<root>
<item>content</item>
</root>

<!-- CORRECT -->
<?xml version="1.0" encoding="UTF-8"?>
<root>
<item>content</item>
</root>

3. Special Character Issues

Error: Unexpected character

<!-- WRONG -->
<description>Speed & handling</description>
<note>Value must be < 100</note>

<!-- CORRECT -->
<description>Speed &amp; handling</description>
<note>Value must be &lt; 100</note>

Escape sequences:

  • & = &amp;
  • < = &lt;
  • > = &gt;
  • " = &quot;
  • ' = &apos;

4. Improper Nesting

Error: Tag mismatch

<!-- WRONG -->
<parent>
<child>
<grandchild>content
</child>
</grandchild>
</parent>

<!-- CORRECT -->
<parent>
<child>
<grandchild>content</grandchild>
</child>
</parent>

5. Duplicate IDs

Error: Vehicle spawn fails or wrong data loads

<!-- WRONG -->
<colour id="0">
<name>Black</name>
</colour>
<colour id="0">
<name>White</name>
</colour>

<!-- CORRECT -->
<colour id="0">
<name>Black</name>
</colour>
<colour id="1">
<name>White</name>
</colour>

6. Case Sensitivity

Error: Vehicle doesn't spawn, properties don't apply

<!-- WRONG - Mismatched case -->
vehicles.meta: <modelName>MyVehicle</modelName>
carvariations.xml: <Item>
<modelName>myvehicle</modelName>

<!-- CORRECT - Exact match -->
vehicles.meta: <modelName>myvehicle</modelName>
carvariations.xml: <Item>
<modelName>myvehicle</modelName>

7. Attribute Quotes

Error: Attribute without quotes

<!-- WRONG -->
<wheel id=0 modelName=sport_wheel />

<!-- CORRECT -->
<wheel id="0" modelName="sport_wheel" />

FiveM-Specific Issues

Vehicle Won't Spawn

Possible causes:

  1. Invalid modelName in vehicles.meta

    <!-- Check: modelName matches 3D model file exactly -->
    <modelName>myvehicle</modelName>
  2. Missing handlingId reference

    <!-- Verify handlingId exists in handling.meta -->
    <handlingId>MYVEHICLE</handlingId>

    <!-- In handling.meta, must have matching entry -->
    <Item type="CHandlingData">
    <handlingName>MYVEHICLE</handlingName>
  3. Syntax error in file

    • Validate XML with online tool
    • Check for unclosed tags
    • Verify special characters escaped

Colors Not Applying

  1. IDs don't match between files

    <!-- carcols.xml -->
    <colour id="100">
    <name>Custom Red</name>
    </colour>

    <!-- carvariations.xml must reference same ID -->
    <primaryColour>100</primaryColour>
  2. RGB values out of range

    <!-- WRONG - Values must be 0-255 -->
    <r>300</r>

    <!-- CORRECT -->
    <r>255</r>
  3. Invalid colour IDs

    <!-- Ensure all referenced IDs exist in carcols.xml -->
    <primaryColour>9999</primaryColour> <!-- May not exist! -->

Wheels Not Showing

  1. Invalid model names

    <!-- Verify wheel model names are correct -->
    <wheel id="0" modelName="wheel_sport_01" /> <!-- Must exist -->
  2. Wrong wheel slot

    <!-- Use slot 19 for wheels, not other slots -->
    <ModType id="19">
    <ModName>Wheels</ModName>
    </ModType>

Handling Feels Wrong

  1. Reference mismatch

    <!-- vehicles.meta -->
    <handlingId>MYVEHICLE</handlingId>

    <!-- handling.meta must match exactly -->
    <handlingName>MYVEHICLE</handlingName>
  2. Invalid physics values

    <!-- Values should be realistic -->
    <fMass>1500.0</fMass> <!-- 800-5000 typical -->
    <fAcceleration>0.8</fAcceleration> <!-- 0.5-1.5 typical -->

Debugging Steps

Step 1: Validate XML

# Online or local validation
xmllint --noout file.xml

Step 2: Check References

  • All modelNames match
  • All IDs are unique
  • All cross-file references exist

Step 3: Test Individual Files

  • Replace with known-good vehicle
  • If it works, issue is in your file
  • If not, check resource setup

Step 4: Check Console

  • Look for error messages
  • Search for file not found errors
  • Check model loading status

Step 5: Simplify

  • Start with basic vehicle
  • Add modifications one at a time
  • Test after each change

Recovery from Corrupted Files

Backup & Restore

# Copy your files before modifying
copy vehicles.meta vehicles.meta.backup
copy carcols.xml carcols.xml.backup
copy carvariations.xml carvariations.xml.backup

# If something breaks, restore from backup
copy vehicles.meta.backup vehicles.meta

Git for Version Control

git init
git add *.xml *.meta
git commit -m "Initial vehicle setup"

# If you make mistakes:
git diff # See changes
git checkout -- file.xml # Restore file

Prevention Tips

  1. Always backup before editing
  2. Validate after changes - Use tools immediately
  3. Test incrementally - Add one change at a time
  4. Use version control - Track all changes
  5. Keep examples - Reference working files
  6. Document changes - Note what you modified
  7. Test thoroughly - Verify in-game

Advanced Debugging

XML Pretty Print

# Reformat XML for better readability
python -m xml.dom.minidom file.xml > file_pretty.xml

Find Duplicates

# Search for duplicate IDs
grep -o 'id="[0-9]*"' carcols.xml | sort | uniq -d

Validate Against Schema

Create an XSD schema and validate against it:

xmllint --schema schema.xsd file.xml

Getting Help

If issues persist:

  1. Check the FiveM documentation - docs.fivem.net
  2. Community forums - forum.fivem.net
  3. Discord communities - Various FiveM modding servers
  4. GitHub issues - Report bugs to tool creators

Quick Checklist

  • XML validates without errors
  • All tags are properly closed
  • Special characters are escaped
  • IDs are unique
  • Cross-file references match
  • Case sensitivity is correct
  • Attributes have quotes
  • Numbers are in valid ranges
  • Files are backed up
  • Changes tested in-game
📺 Live Stream