Table of Contents
Getting Started with Modding
This guide will help you create your first mod for Remixed Dungeon. We'll start with simple modifications and work up to more complex ones.
Prerequisites
Before starting, make sure you have:
- A copy of Remixed Dungeon installed
- A text editor or IDE for editing files
- Basic understanding of JSON format
- Basic understanding of file organization
Your First Simple Mod: Resource Override
Step 1: Create a Mod Directory
- Navigate to your game's files directory:
Android/data/com.nyrds.pixeldungeon.ml/files/(on Android) - Create a new folder for your mod (e.g., “MyFirstMod”)
Step 2: Add Required Files
- Inside your mod folder, create a
version.jsonfile - Add this basic content to the file:
{
"version": 1,
"name": "My First Mod"
}
Step 3: Override a Resource
- Download a simple image (e.g., a PNG file) that could replace an item sprite
- In your mod folder, create the directory structure to match the original game:
items/weapon/ - Place your image file in this directory with the same name as the original sprite you want to replace (e.g.,
dagger.pngto replace the dagger sprite)
Step 4: Test Your Mod
- Launch Remixed Dungeon
- Go to the Mods menu and enable your mod
- Start a new game to see your changes
Your First JSON Mod: Changing Item Properties
Step 1: Find the Item File
- Locate the JSON configuration for the item you want to modify in the game's assets
- For example, weapon properties might be in
items/weapon/in files likeshort_sword.json
Step 2: Copy to Your Mod
- Copy the JSON file to your mod folder in the same directory structure
- Modify the properties you want to change (e.g., damage, level requirements)
Example modification:
{
"class": "com.watabou.pixeldungeon.items.weapon.melee.ShortSword",
"name:en": "Modified Short Sword",
"name:ru": "Модифицированный короткий меч",
"damageMin": 3, // Original value might be 4
"damageMax": 8, // Original value might be 8
"ac": "ATTACK",
"imageIndex": 0
}
Step 3: Test Your Changes
- Make sure your mod is enabled
- Start a new game to see the modified item properties
Understanding the Directory Structure
The game's assets follow a specific organization:
actors/- Mobs, NPCs, and other entitiesactors/mobs/- Monster definitionsactors/buffs/- Status effects
items/- All items in the gameitems/weapon/- Weaponsitems/armor/- Armoritems/rings/- Ringsitems/potions/- Potionsitems/scrolls/- Scrolls
levelsDesc/- Level definitions and dungeon structureres/- Text strings and localizationres/values/- English textsres/values-ru/- Russian texts
sounds/- Sound effectsmusic/- Background musicsprites/- Game graphics
Basic JSON Modding
Changing Text
To modify in-game text, create a res/values/strings.json file in your mod:
{
"DungeonTitle": "My Custom Dungeon",
"WelcomeMsg": "Welcome to my modded version!"
}
Modifying Mobs
To change a mob's properties, copy the mob's JSON file to your mod:
{
"class": "com.watabou.pixeldungeon.actors.mobs.Rat",
"name:en": "Giant Rat",
"HP": 15, // Higher HP
"damageMin": 3, // Higher damage
"damageMax": 6, // Higher damage
"exp": 3, // More experience
"loot": "gold", // Additional loot
"lootChance": 0.5 // Higher chance for loot
}
Using Lua Scripts for Advanced Mods
For more complex modifications, you can use Lua scripts. The correct approach uses specialized libraries:
Example: items/custom_item.lua
local RPD = require "scripts/lib/commonClasses" local item = require "scripts/lib/item" return item.init{ desc = function() return { image = 0, imageFile = "items.png", name = "Explosive Item", info = "An explosive item that damages enemies when thrown.", stackable = true, upgradable = false, isFlies = true, defaultAction = "THROW" } end, onThrow = function(self, cell, user) -- Custom behavior when item is thrown RPD.glog("Custom item thrown at " .. cell.x .. ", " .. cell.y) -- Add explosion effect -- Blast functionality would need to be implemented using specific game mechanics RPD.topEffect(RPD.Dungeon.level():cell(cell.x, cell.y), "blast") end }
Reference the script in your item's JSON using the correct format:
{
"class": "com.watabou.pixeldungeon.items.Item",
"name:en": "Explosive Item"
}
Note: Modern Remixed Dungeon uses the library-based approach that's defined entirely in the Lua file rather than through JSON script references.
Testing and Debugging Your Mod
Common Issues
- Mod not loading: Check that your
version.jsonfile exists and is properly formatted - Changes not showing: Make sure the file paths exactly match the original game structure
- JSON errors: Use a JSON validator to check for syntax errors
- Game crashes: Check for missing or incorrectly formatted properties
Debugging Tips
- Start with simple changes before moving to complex modifications
- Use the game's existing files as examples
- Test frequently to isolate problems
- Keep backups of working configurations
Sharing Your Mod
When your mod is complete and tested:
- Package all your mod files in a ZIP archive
- Include clear instructions and documentation
- Test on multiple devices if possible
- Share on the Remixed Dungeon Discord server
- Consider uploading to mod distribution platforms
Next Steps
Once you're comfortable with basic modding:
- Explore more complex JSON configurations
- Learn Lua scripting for dynamic behavior
- Create custom levels using Tiled
- Join the modding community for tips and feedback
- Look at existing mods like Maze to understand advanced techniques
Remember to always backup your save files before testing new mods!
