This is an example datapack for ComputerCraft, which can be used as a skeleton for your own pack.
Datapacks can be used to add or overwrite files in ComputerCraft's own rom, allowing you to add new programs or modules, or adjust the behaviour of existing ones. This pack comes with several features:
- apis/my_api.lua: Example of a old-style API with a single method- my_api.do_something().
- programs/api_program.lua: A new program- api_program, which just calls the above function.
- modules/main/my_module.lua: A new module with a single method- do_something().
- programs/my_program.lua: A new program- my_program, which just calls- do_somethingfrom- my_module.
- modules/turtle/helpers.lua: A new module with a- digColumnmethod.
- programs/turtle/demo.lua: A new turtle program that uses the- helpersmodule to dig 3x3 openings.
- autorun/my-pack.lua: A basic program which is run whenever a computer turns on. This may be used to perform additional setup, such as registering autocompletion for your programs.
(Note: files in turtle folders will only be visible to turtles!)
Datapacks can also be used to add or change the behaviour of specific bits of CC: Tweaked. For example:
- Add new turtle tools. This pack adds a netherite sword (data/minecraft/computercraft/turtle_upgrades/netherite_sword.json). See the netherite-tools datapack for more complete example.
- Allow items or blocks to be interacted with via turtle.place(). This pack extendsdata/computercraft/tags/blocks/turtle_can_use.jsonto allow pressing buttons viaturtle.place().
The contents of this project should be placed in the datapacks folder in your world's save folder. You may need to
zip1 the folder for Minecraft to recognize it. The resulting file structure should look something like this:
datapacks
└─my-pack(.zip)
  ├ pack.mcmeta
  └─data
    └─computercraft
      └─<your files go here>
For more information on datapacks, see the Minecraft wiki.
Obviously this is just a skeleton, so is designed to be forked and used for your own programs!
Footnotes
- 
The pack.mcmetafile should be in the root of the resulting zip. Using 7-Zip on Windows go into themy-packfolder, select all,RMB>7-Zip>Add to "my-pack.zip", then move todatapacksfolder. ↩