Downloads Learn more about Balm Mod.
Balm JAR vs Source ZIP: Which File Should You Download?

For a normal Balm installation, download the published mod JAR that matches your Minecraft version, loader, and dependent mod requirements. A GitHub source ZIP serves a different purpose: it contains project material for reading or development and is not a ready-to-install replacement. Understanding the distinction prevents an otherwise careful installation from failing before version checks even matter. This guide explains how to recognise each deliverable, inspect what you downloaded, choose the correct file, and recover from common archive mistakes without modifying unrelated parts of your pack.
Start with the task you are trying to complete
A player installing a dependency and a developer inspecting implementation details need different materials. The player needs the published runtime release intended for the selected mod environment. The developer may need source files, build instructions, and a compatible development toolchain. A project page can offer both, sometimes through equally prominent controls. Decide which task you are performing before interpreting a download button. The project's name alone does not tell you what a particular archive contains or how it should be used.
A playable release is a specific deliverable
A published mod release should have support information connecting it to a game version and loader. Read those details and compare them with your instance. The fact that the file ends in JAR is useful but not sufficient: a JAR for another environment is still unsuitable. Choose the specific release described by the project, rather than any archive that happens to use the desired extension or appears in a search result with a familiar title.
Source material belongs to a development workflow
Repository archives usually reflect a branch or other source snapshot. Their contents may include build scripts, source directories, examples, and project documentation. Those files can be valuable for understanding or developing software, but obtaining them does not mean you have completed the build and packaging process. Treat the archive according to its documented purpose. Do not copy an entire extracted project into a player's mods directory and expect it to become the published mod automatically.
Understand what a JAR file represents
JAR is an archive format used in the Java ecosystem. Wikipedia's JAR file format article provides general background. In this installation task, the important distinction is between an archive packaged as the mod's published release and an archive holding its source material. A compatible published mod JAR is the deliverable you select for ordinary play; the broader format alone does not establish that every JAR is a Minecraft mod or a suitable dependency.
Do not confuse internal structure with installation instructions
An archive tool may be able to open a JAR and display files inside it. That does not imply that ordinary installation requires extraction. Follow the mod loader's published installation workflow and keep the release intact. Extracting internal files into mods can create a directory that looks busy while failing to provide the component the loader expects. Inspection can help you understand a file, but it should not replace the installation method documented for the release.
File extensions can be hidden or misleading
Operating systems may hide known extensions, and browsers can add suffixes to repeated or incomplete downloads. Enable enough file-name visibility to identify what you received. A manually renamed ZIP can look like a JAR without acquiring the contents or metadata of a built mod. Do not use renaming as a conversion technique. If the deliverable is unclear, compare its original name and download context with the individual release listing before making changes to your instance.
Recognise a repository source archive
Look at the context of the download, not only its icon. A repository control offering source code or a branch archive generally addresses a development use case. A path referring to an archive of a branch can be a clue, but the project's description and contents are more important than memorising URL patterns. If the extracted archive is a source tree with build configuration, treat it as project material until the documented build process produces the intended artifact.
A branch name does not guarantee a player release
A branch can represent ongoing work or a particular development target. Its archive is a snapshot of source material, not automatically a stable binary approved for your installed environment. Even if a branch name resembles a game version, you still need to distinguish what was downloaded from what can be installed. For ordinary dependency repair, choose a published compatible release rather than attempting to infer player support from a source branch's label alone.
Keep development downloads away from live mods
If you collect both source archives and playable releases, store them in separate directories with clear purposes. Your browser's downloads folder can temporarily contain both, but only the selected runtime files should enter the active instance. This boundary helps prevent accidental copying and makes future inspection easier. A person helping you troubleshoot should be able to identify the actual installed release without sorting through extracted repositories, spare candidates, and unrelated development artifacts in the same folder.
Find the published Balm release for your setup
Record the active Minecraft version, loader and version, and the requirement declared by the mod that needs Balm. Then use the project's published release listing to choose a supported candidate. Read the selected file's details instead of relying on a generic download control. Our Balm version selection guide explains the compatibility checks. Selecting the correct archive type and selecting the correct version are separate steps, and both need to succeed before installation is meaningful.
Check the dependent mod at the same time
A playable Balm release still needs to satisfy the specific requirement of the target mod. If several installed mods share the library, compare their ranges. A newer binary is not automatically suitable for an older pack. Keep the game, loader, library, and dependent releases in one compatibility note. This prevents a correct archive-format decision from becoming an incorrect environment decision when you choose a file intended for another profile or release family.
Inspect the actual completed download
After downloading, confirm that the file name and type correspond to the selected release and that the transfer finished. Keep its original name so later reports can identify it. If a manager supplies the file, inspect the installed instance after its process completes. Do not assume that a successful click established the final file state. The live configuration must contain the intended deliverable, not merely a reference to it in browser history or a candidate left in downloads.
Install without altering the published archive
Close the game, locate the active profile's mods directory, and copy the selected JAR there according to the loader's instructions. Preserve the existing setup if it contains important worlds. Check whether a compatible Balm release is already installed before adding another copy. If replacement is required, keep the old file outside the live directory and leave one clearly intended active release. The archive should remain intact unless a documented development or maintenance process specifically requires another action.
Do not use extraction as a troubleshooting shortcut
If the loader reports a missing dependency, extracting the JAR is not a general remedy. Read the message and verify the instance directory, archive type, game version, loader, and required range. Changing the internal packaging without understanding the failure can introduce another problem and make the original release harder to identify. Keep troubleshooting focused on the requirement and deliverable rather than experimenting with file structure simply because an archive utility makes that option available.
Avoid installing several archive variants together
A source ZIP, an extracted source folder, and a runtime JAR do not form a more complete player installation when combined indiscriminately. Choose the documented runtime set and keep unrelated materials outside mods. Likewise, do not leave old library versions active as informal backups. A clean boundary between live files and stored alternatives makes startup messages easier to interpret and helps you explain exactly which release the selected profile was intended to load.
Verify what the loader actually accepts
Launch the intended profile and inspect any dependency message. If startup succeeds, confirm that the desired mod is recognised and test its relevant feature in a disposable world. A supporting library may not introduce a separate visible item, so do not use an inventory search as the only check. Record the installed file set and actual observation. Verification connects your download choice to the practical goal of enabling a specific compatible mod setup.
Respond to an unchanged missing-dependency error
If the same error remains, check that the published JAR reached the active profile's directory. A source archive replaced in the wrong instance will not help the profile you are launching. Then compare the version requirement and loader label. Our missing Balm dependency guide provides the detailed sequence. Keep the original message and each change so you can tell whether the failure is unchanged or a different requirement is now being reported.
Preserve working and failing evidence separately
Keep the successful file list alongside the instance backup. If a test fails, save the relevant report and candidate name without mixing that candidate into the known working directory. This allows you to compare the same environment with different deliverables or releases. It also makes a support question more precise: you can state which published file was installed, which profile loaded it, and what requirement was reported instead of saying only that you downloaded Balm and nothing happened.
When source code is the right choice
Source material is useful when you want to inspect behaviour, study examples, contribute a fix, or develop a compatible project. Read the repository's build and licence instructions before proceeding. A development build can require a particular toolchain and produce several artifacts with different purposes. Do not assume that any generated JAR is the one a player should install. Follow the documented workflow and distinguish your locally produced output from an official published release.
Building introduces additional verification work
If you intentionally compile source, record the source revision, environment, build command, and artifact you produced. Test the artifact in the intended runtime setup and keep the source configuration reproducible. That is a separate project from repairing an ordinary player's missing dependency. For most players, a published compatible release is the simpler route because it avoids introducing development tooling and artifact-selection questions into a task that only requires the correct runtime component.
Public source does not settle every distribution permission
Review the applicable licence and any exceptions for artwork or compiled releases before sharing source material or binaries. The ability to download a repository does not imply identical permissions for everything associated with the project. Keep this distinction in mind if you package files for others or publish a modified build. Clear provenance and accurate attribution help recipients understand whether they are using an official release, a source snapshot, or your own development output.
Example: correcting a source archive installation
Imagine you downloaded a branch ZIP, extracted it into mods, and still see a missing Balm message. Close the game and preserve the test evidence. Move the extracted project outside the live directory, identify the active profile's environment and required range, and obtain the published compatible JAR. Install that single intended file, then repeat startup and feature checks. The correction is a change of deliverable and installation method, not a cosmetic change to the source archive's extension.
After success, keep source material in a development location if you still want to read it. Record the actual runtime release in your installation notes. This gives each file a clear role and prevents the same confusion during the next update. The dependable outcome is not simply having a Balm-labelled download somewhere on disk; it is having the documented compatible runtime component in the correct instance, with a test confirming that the dependent feature works as expected.
Explain the file choice clearly when helping someone else
If another player has downloaded the wrong archive, begin by identifying what they intended to install and what they actually received. Avoid assuming that the project's branding or file icon proves the deliverable type. Ask for the original file name and the individual release context, then compare it with the active game and loader requirements. Keep the correction focused: obtain the documented runtime release, install it into the confirmed instance, and verify the dependent feature. There is no need to introduce a source-build toolchain into an ordinary player dependency task unless development is actually their goal.
After correction, explain why the earlier archive belongs elsewhere rather than describing it as a defective download. Source material can be valid and useful while still being unsuitable for the player's immediate task. This helps the user recognise the distinction during later updates without learning an inaccurate rule that ZIP files are always wrong or JAR files are always safe to install. The decision depends on the documented purpose and supported environment of the specific deliverable. Keeping that reasoning visible produces better installation notes and more precise troubleshooting questions than a cosmetic rule based only on extensions or a remembered button location.