Contributing¶
Thank you for your interest in contributing to CFX Developer Tools.
How to contribute¶
Reporting issues¶
Open a GitHub issue with: - A clear description of the problem - Steps to reproduce (if applicable) - Expected vs actual behavior - Your environment (OS, Cursor version, Python version)
Suggesting features¶
Open a GitHub issue with the "feature request" label. Describe: - What you want the plugin to do - Why it would be useful - Any examples or references
Submitting changes¶
- Fork the repository
- Create a feature branch from
main - Make your changes
- Test your changes in Cursor
- Submit a pull request
What to contribute¶
Templates¶
Add new resource templates for additional frameworks or use cases:
- Place them in templates/your-template-name/
- Include a complete fxmanifest.lua
- Include working client and server scripts
- Follow existing template conventions
Snippets¶
Add code patterns for common tasks:
- Place them in the correct language folder under snippets/
- Include a header comment explaining what the snippet does and when to use it
- Keep snippets focused on a single pattern
Native data¶
The native databases (mcp-server/data/natives_gta5.json, natives_rdr3.json) are auto-generated by a weekly CI workflow that fetches from runtime.fivem.net/doc/. Do not edit them manually.
To improve the native transformation logic:
- Edit .github/scripts/transform_natives.py
- Changes to side classification, description parsing, or schema mapping go there
- You can trigger a manual update via gh workflow run update-natives.yml
Events data¶
Help expand the event reference database:
- mcp-server/data/events.json
- Follow the existing JSON structure: name, side, description, params, game
- Include accurate side (client/server/shared) and parameter lists
Documentation¶
Improve or expand documentation: - Fix typos or unclear explanations - Add examples - Update outdated information
Documentation changes auto-deploy to the docs site when merged to main.
Code style¶
- No em dashes anywhere - use hyphens or rewrite the sentence
- No hardcoded credentials, tokens, or passwords
- Follow existing file naming conventions
- Keep fxmanifest.lua syntax consistent with the fxmanifest-standards rule
License¶
By contributing, you agree that your contributions will be licensed under the project's CC-BY-NC-ND-4.0 license.