|
1 | | -# DynamicPack |
2 | | -A mod that will monitor the current version of your resource pack and download automatically! |
| 1 | +# 🌍 DynamicPack |
| 2 | +*A lightweight mod that monitors your resource pack version and updates it automatically.* |
3 | 3 |
|
4 | | - |
5 | | -[ |
6 | | -](https://github.com/CalculatorsTeam/DynamicPack) |
| 4 | +<p align="center"> |
| 5 | + <img src="https://img.shields.io/badge/Enviroment-Client-purple" alt="Environment: Client"> |
| 6 | + <a href="https://github.com/CalculatorsTeam/DynamicPack"> |
| 7 | + <img src="https://img.shields.io/badge/Github-gray?logo=github" alt="GitHub Repository"> |
| 8 | + </a> |
| 9 | + <a href="https://github.com/CalculatorsTeam/DynamicPack/actions/workflows/build.yml"> |
| 10 | + <img src="https://github.com/CalculatorsTeam/DynamicPack/actions/workflows/build.yml/badge.svg" alt="Build Status"> |
| 11 | + </a> |
| 12 | +</p> |
7 | 13 |
|
8 | | -[](https://github.com/AdamCalculator/DynamicPack/actions/workflows/gradle.yml) |
| 14 | +<p align="center"> |
| 15 | + <a href="https://modrinth.com/mod/dynamicpack"> |
| 16 | + <img src="https://github.com/RushanM/Minecraft-Mods-Russian-Translation/blob/beta/Ассеты/dynamicpack_cozy_vector.svg?raw=true" width="250" alt="DynamicPack Banner"> |
| 17 | + </a> |
| 18 | +</p> |
9 | 19 |
|
10 | | -[](https://modrinth.com/mod/dynamicpack) |
| 20 | +--- |
11 | 21 |
|
12 | | -## Documentation |
13 | | -[**Available here**](https://github.com/CalculatorsTeam/DynamicPack/wiki) |
| 22 | +## 📖 Documentation |
| 23 | +See the [**GitHub Wiki**](https://github.com/CalculatorsTeam/DynamicPack/wiki) for full developer documentation, advanced features, and examples. |
14 | 24 |
|
15 | | -## Packs using it mod |
16 | | -* [Better Tables](https://modrinth.com/resourcepack/bettertables) |
17 | | -* [CursedEveryday (github)](https://github.com/AdamCalculator/CursedEveryday/releases/tag/day4) |
18 | | -* [ModsRU](https://modrinth.com/resourcepack/mods-ru) |
19 | | -* [zelda-music](https://modrinth.com/resourcepack/zelda-music) |
20 | | -* [PawTotems (smp) (github)](https://github.com/1NFERR/PawTotems/) |
21 | | -* [SPPack (smp) (github)](https://github.com/aladairmaxwell/SP) |
22 | | -* [Essentially Tweaked](https://modrinth.com/resourcepack/essentially-tweaked) |
23 | | -* [Vanilla Leaves](https://modrinth.com/resourcepack/vanilla-leaves) |
| 25 | +--- |
24 | 26 |
|
25 | | -## Plans |
26 | | -The mod is planned to support **any bootloader** and any version, but I don't have enough time right now. **I'm always happy to see new contributors!** |
| 27 | +## 🎨 Resource Packs Using DynamicPack |
| 28 | +These resource packs already use automatic DynamicPack updates: |
27 | 29 |
|
28 | | -## How it works |
29 | | -Resource pack developers need to create a `dynamicmcpack.json` file inside the resource pack, which will save some information, and the mod will update when the game starts if resource pack files are required. |
| 30 | +- [CursedEveryday (GitHub)](https://github.com/AdamCalculator/CursedEveryday) |
| 31 | +- [ModsRU](https://modrinth.com/resourcepack/mods-ru) |
| 32 | +- [Zelda Music](https://modrinth.com/resourcepack/zelda-music) |
| 33 | +- [PawTotems (SMP, GitHub)](https://github.com/1NFERR/PawTotems/) |
| 34 | +- [SPPack (SMP, GitHub)](https://github.com/aladairmaxwell/SP) |
| 35 | +- [Essentially Tweaked](https://modrinth.com/resourcepack/essentially-tweaked) |
| 36 | +- [Vanilla Leaves](https://modrinth.com/resourcepack/vanilla-leaves) |
30 | 37 |
|
31 | | -## For users |
32 | | -Install and it will automatically update supported resource packs. |
| 38 | +--- |
33 | 39 |
|
34 | | -⚠️ Since the mod is being actively developed, it is not yet possible to check resource packs for updates, but this will be added in the future. |
| 40 | +## ⚙️ How It Works |
| 41 | +Resource pack developers include a metadata file named `dynamicmcpack.json` inside their pack. |
| 42 | +At game launch, DynamicPack checks for updates and automatically downloads the latest version if necessary. |
35 | 43 |
|
| 44 | +--- |
| 45 | + |
| 46 | +## 🧩 For Players |
| 47 | +Install the mod and enjoy — DynamicPack will handle updates in the background. |
| 48 | + |
| 49 | +--- |
| 50 | + |
| 51 | +## 🛠 For Developers |
| 52 | +If you’d like your pack to **update itself automatically**, you can choose one of the integration options below. |
| 53 | + |
| 54 | +<details> |
| 55 | +<summary>🔗 <b>Option 1 — Update from Modrinth</b></summary> |
| 56 | + |
| 57 | +Create a file named `dynamicmcpack.json` in your pack: |
36 | 58 |
|
37 | | -## For developers |
38 | | -If you want your package to update itself from **Modrinth**, you need to add the `dynamicmcpack.json` file to the following content: |
39 | 59 | ```json5 |
40 | 60 | { |
41 | | - "current": { |
42 | | - "version_number": "7.1" // version of the current pack |
43 | | - }, |
44 | | - "remote": { |
45 | | - "game_version": "1.21.1", // game version |
46 | | - "modrinth_project_id": "better-leaves", // your project identifier |
47 | | - "type": "modrinth" |
| 61 | + "current": { |
| 62 | + "version_number": "7.1" // Current version of your resource pack |
| 63 | + }, |
| 64 | + "remote": { |
| 65 | + "game_version": "1.21.1", // Compatible Minecraft version |
| 66 | + "modrinth_project_id": "better-leaves", // Your Modrinth project slug or ID |
| 67 | + "type": "modrinth" // Update source type (Modrinth) |
| 68 | + }, |
| 69 | + "formatVersion": 1 // Internal config format version |
| 70 | +} |
| 71 | +``` |
| 72 | + |
| 73 | +</details> |
| 74 | + |
| 75 | +<details> |
| 76 | +<summary>🐙 <b>Option 2 — Update from GitHub</b></summary> |
| 77 | + |
| 78 | +Create a file named `dynamicmcpack.json` in your pack: |
| 79 | + |
| 80 | +```json5 |
| 81 | +{ |
| 82 | + "current": {}, |
| 83 | + "remote": { |
| 84 | + "sign_no_required": true, // Optional digital signature — set to true to disable verification |
| 85 | + "type": "dynamic_repo", // Update source type (Dynamic Repository) |
| 86 | + "url": "https://adamcalculator.github.io/CursedEveryday/" // Remote repository URL |
| 87 | + }, |
| 88 | + "formatVersion": 1 // Internal configuration format version |
| 89 | +} |
| 90 | +``` |
| 91 | + |
| 92 | +Next, create a `dynamicmcpack.repo.json` file like this: |
| 93 | + |
| 94 | +```json5 |
| 95 | +{ |
| 96 | + "formatVersion": 1, // Internal schema version |
| 97 | + "build": 10, // Build number of your current release |
| 98 | + "name": "CursedEveryday", // Display name of your resource pack |
| 99 | + "contents": [ |
| 100 | + { |
| 101 | + // Metadata block (main information about pack components) |
| 102 | + "url": "path/to/content.json", |
| 103 | + "hash": "5e4d4ad1e9714487263c51f5f83c448c0708773a", // SHA1 checksum of content.json |
| 104 | + "id": "meta", |
| 105 | + "hidden": true, // Hides this component from user‑facing lists |
| 106 | + "required": true // Marks this component as mandatory |
48 | 107 | }, |
49 | | - "formatVersion": 1 |
| 108 | + { |
| 109 | + // Example of an additional content section |
| 110 | + "url": "path/to/content.json", |
| 111 | + "hash": "6e6739297dac80078bbc4890567f05d4015553db", |
| 112 | + "id": "cursed", |
| 113 | + "name": "Cursed content" // Optional friendly display name |
| 114 | + } |
| 115 | + ] |
50 | 116 | } |
51 | 117 | ``` |
52 | | -**⚠️⚠️⚠️ JSON Specification not support //comments! Delete it before use.** |
53 | 118 |
|
54 | | -You can validate your JSON [here](https://jsonformatter.curiousconcept.com/#) |
| 119 | +Next, create a separate `content.json` file for each content section: |
| 120 | + |
| 121 | +```json5 |
| 122 | +{ |
| 123 | + "formatVersion": 1, // Schema version |
| 124 | + "content": { |
| 125 | + "parent": "path/to/parent", // Local folder containing the files |
| 126 | + "remote_parent": "remote/path/to/parent", // Corresponding path in your Git repo |
| 127 | + "files": { |
| 128 | + "path/to/file": { |
| 129 | + "hash": "ca55daeef2e2d84ccd64608cf889ac321c18d4c2", // SHA1 hash of file |
| 130 | + "size": 4773 // File size in bytes |
| 131 | + }, |
| 132 | + "path/to/file2": { |
| 133 | + "hash": "336e9f4e6d7d1400d8a308a33e703e8b33ea5434", |
| 134 | + "size": 54665 |
| 135 | + }, |
| 136 | + "path/to/file3": { |
| 137 | + "hash": "09dae0777de1705e8acd0ff84c0bb6b7e3e22f63", |
| 138 | + "size": 98592 |
| 139 | + } |
| 140 | + } |
| 141 | + } |
| 142 | +} |
| 143 | +``` |
| 144 | + |
| 145 | +</details> |
| 146 | + |
| 147 | +> ⚠️ **Important:** These examples use `json5`, which allows comments (`//`). |
| 148 | +> The actual files must be valid `.json`, so remove comments before use or validate them with [this JSON checker](https://jsonformatter.curiousconcept.com/#). |
55 | 149 |
|
| 150 | +Advanced features — such as **dynamic repositories** — are documented in the [**GitHub Wiki**](https://github.com/CalculatorsTeam/DynamicPack/wiki). |
56 | 151 |
|
57 | | -For other features (dynamic repos) visit [github wiki!](https://github.com/CalculatorsTeam/DynamicPack/wiki) |
| 152 | +--- |
58 | 153 |
|
| 154 | +## 💖 Support the Project |
| 155 | +DynamicPack is open‑source and completely free under the **MIT License**. |
| 156 | +If you’d like to support the original author: |
59 | 157 |
|
60 | | -## Donate |
61 | | -The project is completely free and open under the MIT licence. You can help original author by donating ❤️ |
| 158 | +**Bitcoin:** |
| 159 | +`bc1qpc0q9ym7rnfatdh43c4jyf68znj8x2jae5j4cz` |
62 | 160 |
|
63 | | -**Bitcoin:** `bc1qpc0q9ym7rnfatdh43c4jyf68znj8x2jae5j4cz` |
| 161 | +Every satoshi helps keep things dynamic (and maybe buys some extra coffee ☕). |
0 commit comments