User:Aiteron

From PZwiki

{{Languages}} {{header|version=Version 41|incver=**|hidever=true|hidecat=true}}

Spiffo's Workshop is the home of Project Zomboid mods on Steam.

Terms & Conditions

By playing Project Zomboid, you agree to the: Terms and Conditions

In terms of the modding of PZ, you also agree with the: Modding Policy

Key Restrictions

  • The Indie Stone reserve the right to implement any features in the game irrespective of whether mods exist that accomplish the same goal.
  • PZ modders are solely responsible for their mod, including (but not limited to compliance with any hosting platforms (such as Steam Workshop). They are also responsible for obtaining third party consents for any third party materials in the mod. Legally, we have to ask that modders to ‘represent and warrant’ (i.e. promise legally) that their mod is their own original work and any third party contents are fully and properly licensed by the modder.
  • Creation of mods is subject to our modding policy, which may be updated from time to time with any technical requirements regarding how PZ mods must work.
  • Project Zomboid modders are free to receive monetary/gift donations from the players who use their releases, and appreciate the time and effort put into them. However having mods created exclusively for those who choose to donate (or separate ‘in-mod’ content and bonuses) is not allowed. Mod creators cannot sell modifications to Project Zomboid.

Installing and using mods

Installing mods - How to install mods on the Steam or GoG version of the game

Using Mods - How to enable and configure mods

Solution to the most common problems with mods - What to do if mods do not work well or break the game

Creation of mods

Introduction

In modding for PZ, there are several main directions:

  • Changing scripts - Scripts in the game describe the parameters of items, recipes and vehicles. Making a mod that changes the values ​​of items, vehicles, a recipe, or adds a new item is not a difficult. This does not require programming knowledge and any text editor is needed from the tools. Scripts are in .txt files and have a specific structure.
  • Writing Lua code - The main direction in PZ modding. Most mods contain Lua code. PZ is developed mainly in Java and Lua, so using Lua code in mods is closely related to the exploration of Java and Lua game code. When creating more complex mods, you will have to dive into the decompiled Java code of the game. We will cover the basics of the Lua language, but you should be familiar with the basics of programming. A general understanding of the syntax of the Java language is also desirable, as you at one point you have to climb into the game code to figure out how this or that function works.
  • Creating 3D Models - At the moment, with the help of mods, you can add new models of vehicles, weapons, ordinary items and clothes to the game. The game uses 2 model formats - .X and .FBX. For us to create mods with models, the .FBX format will be enough.
  • Map Creation - Create locations, buildings and general environment for the game
  • Creating animations - Creating animations for the character. Includes creating an animation file and integrating it into the game.
  • Creating textures, pictures and icons - This direction complements the others. Models will need textures, items will need icons, interface will need certain images, maps will need textures for new tiles (new objects to be placed on the map).


Working tools

  • Text editors - Used to edit scripts and write code. Preferably use editors with Lua syntax highlighting - like Notepad++ or VS Code
  • 3D Modeling - Used to work on 3D models. For example: Blender
  • Image Editor - Used to create icons, textures for items and tiles. For example: GIMP, Photoshop

Beginner level

Mod structure - How the mod works and how to create a template for the mod

PZ folder structure and Zomboid folder - Description of files and folders that will be useful when developing mods

Starting the game in Debug mode - How to run the game in developer mode and use it

Script syntax - Scripting guide (.txt files) for items, recipes and translations

Introduction to Lua - Lua Language Guide

Logging and error handling - How to use logs to get game/mod information and handle errors

Create a 3D model for the item - Create a model with a texture for the item

Events - PZ events and connection to them

Working with sounds and music - Adding and playing audio files

Working with spawn tables - Modifying item spawn tables

Mod Upload to Steam Workshop - How to checkout and upload a mod to Steam Workshop

ModData - Working with mod data and storing data


Creating the first mod - Guide about creating the mod "Hammer of Thor"

  • Creating a template for mod
  • Adding new items to the game
  • Adding new recipes
  • Adding items to item spawn tables
  • Connecting to events (Lua)
  • Add sounds
  • Adding translations for other languages

Advanced level

Tiles - Tile guide

Vehicle - Transport guide

Animations - Animation guide

TimedActions - Timed Actions guide

User Interface - User Interface guide

Professions, Traits and Skills - Guide about Professions, Traits and Skills

Multiplayer - Guide about setting up the mod to work on the server


Creating a Firearms and Armor Mod - Guide about creating a mod "WWII Outfit"

  • Create melee and ranged weapons
  • Create clothes and armor
  • Adding and customizing items

Creating a mod that adds a new vehicle - Guide about creating a mod "Sports car"

  • Creation model and textures
  • Adding and configuring vehicle

Creating a mod that adds a new map - Guide about creating a mod "Lake house"

  • Creation a template for map
  • Creation of new tiles
  • Creation of buildings
  • Adding a map and tiles to the game

Creating a mod that adds new animations - Guide about creating a mod "Macarena"

  • Animation creation
  • Adding animation to the game

Creating a mod that extends the functionality - Guide about creating a mod "Key duplicates"

  • Creation TimedActions
  • Working with user interface
  • Adding profession, perk and skill

Creating a mod with a client-server architecture - Guide about creating a mod "ATM"

  • Working with client-server commands
  • Work with global ModData

Useful articles and links

Files - File Management Guide

In-Game Mod Loading - Mod Load Order and Mod File Load Order

Getting access to Java object public variables - How to get and use Java object variables

Decompiling the game code - How to study the Java source code of the game