Skip to content

Package kinds

Open Markdown

Viewpoint has three kinds of package. Each package that Viewpoint shows, orders and switches is one of them.

AddonResource PackShaderpack
ContainsJava in a jar, assets, shader snippets, LuaAssets only: models/, tiles/, sounds/, data/GLSL files, their options, and textures/
Descriptormedia/viewpoint/addons/<id>/addon.propertiesmedia/viewpoint/resourcepacks/<id>/pack.propertiesmedia/viewpoint/shaderpacks/<id>/pack.properties
JavaA jar, named by jar=. Never by javaJarFile.NoneNone
Shader codeSnippets and Gpu programs, with permissionsNoneGLSL files of the pack
PermissionsIn the descriptorNoneNone
The label tells aboutThe Java, the assets, the Lua line and the shader lineThe assets and the Lua lineThe GLSL, the Lua line and the shader line

Make a resource pack if you have only files: a model for a sprite, a set of tiles. Make a Shaderpack if you change how Viewpoint draws the whole frame. Make an addon if you need code, or to play a sound or read a data file. An addon can also contain assets, with the same four keys as a resource pack.

Viewpoint looks in the mod’s version folder first, then in common/.

If the same folder name is in both, Viewpoint uses the package in the version folder.

  • DirectoryMyMod/
    • mod.info
    • Directory42/
      • Directorymedia/viewpoint/addons/example.lean/
        • addon.properties
    • Directorycommon/
      • Directorymedia/viewpoint/resourcepacks/example.tiles/
        • pack.properties
      • Directorymedia/viewpoint/shaderpacks/example.dusk/
        • pack.properties
        • Directoryshaders/
          • …

One mod can contain many packages. Each package has its own id. The folder name must be the same as the id.

Two older kinds of shader pack continue to work. They are not packages.

  • Folder packs. A pack in the folder Zomboid/viewpoint-shaderpacks/<name>/. The player puts it there. It has no consent and no descriptor of the package kind.
  • Iris packs. A shader pack made for Minecraft, as a .zip or a folder in the same folder. Viewpoint reads it in place.

The Graphics, Shaderpacks page lists them beside the packages. See Shaderpacks for players.

Legacy. A model pack in the older Viewpoint model pack format has no descriptor. The mod’s Lua registers a manifest:

Viewpoint.ModelPacks.register("MyPackMod", "media/models/pack.json")

Viewpoint shows this pack as a resource pack with the id legacy.<modId> and the legacy flag. The version and the game range come from mod.info. A legacy pack follows the player’s order and switch, as all packages do. See Legacy model packs.

Unmanaged. A mod that has javaJarFile in mod.info and requires Viewpoint is loaded by ZombieBuddy. Viewpoint does not load it. Viewpoint shows it on a card, with a label that comes from mod.info only:

  • Amber: Unmanaged: runs outside Viewpoint’s controls (hooks cannot be listed, ordered or vetoed)
  • Red, when the mod starts before Viewpoint: loads before Viewpoint

Viewpoint does not read the jar of an Unmanaged mod. Viewpoint cannot order it, switch it off, or show what it does. To change it into an addon, see Migrating from ZombieBuddy.

Each kind has a page of its own in the settings window: Advanced, Addons; Graphics, Resource Packs; and Graphics, Shaderpacks. The first two have an Inactive column and an Active column. When two packages change the same thing, the package nearer the top of the Active column wins. The Shaderpacks page has no order. See Order and Managing addons.

Make an id from lower-case letters and digits. You can put - and . between them.

  • Use 2 to 64 characters.
  • Start and end the id with a letter or a digit.
  • Do not put two dots together.
  • Do not start the id with the name of a Windows device (con, nul, com1 and others), also before a dot.
  • Do not start the id with legacy. or legacy-. Viewpoint uses this start for the older model packs that it finds in mods.

Examples: example.lean, my-tiles.

Start your id with your reversed domain or your name, as example.lean does. Then two authors do not use the same id. Viewpoint refuses a second package whose id differs from an installed id only in the case of the letters.

Settings keys and GLSL names cannot hold . or -. In these places Viewpoint writes both as _:

For the id example.leanYou see
A setting of an addonaddon.example_lean.angle
An option of a Shaderpackpack.example_lean.warmth
A shader value of an addonuAddon_example_lean_angle

Viewpoint refuses a package when its encoded id is the same as the encoded id of an installed package. For example, my-tiles and my.tiles cannot be installed together.

If Viewpoint does not accept an id, the card tells you. Use a short lower-case id, with your name as the first part.