-
Notifications
You must be signed in to change notification settings - Fork 0
README.md
This page shows how to make a simple OrcKit .vmz mod that replaces one vanilla texture:
res://enemies/orc_top_down_walking.png
The same idea works for other texture files. The important rule is that your mod package must contain the replacement at the exact same res:// path as the game file.
Create a working folder like this:
OrcWalkingTexture/
mod.txt
enemies/
orc_top_down_walking.png
scripts/
texture_mod.gd
pack_vmz.ps1
When packed, the .vmz root must look like this:
mod.txt
enemies/orc_top_down_walking.png
scripts/texture_mod.gd
Do not package an extra parent folder. This is wrong:
OrcWalkingTexture/mod.txt
OrcWalkingTexture/enemies/orc_top_down_walking.png
That would become:
res://OrcWalkingTexture/enemies/orc_top_down_walking.png
and it will not replace:
res://enemies/orc_top_down_walking.png
Put this file at:
OrcWalkingTexture/mod.txt
[mod]
id="orc_walking_texture"
name="Orc Walking Texture"
version="1.0.0"
author="YourName"
priority=0
[autoload]
OrcWalkingTexture="res://scripts/texture_mod.gd"The [autoload] script is optional for a pure texture replacer, but it is useful because it proves your mod loaded.
If you do not want any code, remove the [autoload] section and skip the script file.
Put your new PNG here:
OrcWalkingTexture/enemies/orc_top_down_walking.png
The filename must be exactly:
orc_top_down_walking.png
The folder must be exactly:
enemies
Together, that becomes the runtime path:
res://enemies/orc_top_down_walking.png
Keep the replacement image compatible with the original. For animated sprite sheets, use the same frame layout, similar dimensions, and the same transparent background style unless you intentionally want to change those.
Put this file at:
OrcWalkingTexture/scripts/texture_mod.gd
extends Node
func _ready() -> void:
print("[OrcWalkingTexture] loaded")
var tex := load("res://enemies/orc_top_down_walking.png")
if tex == null:
push_warning("[OrcWalkingTexture] replacement texture did not load")
else:
print("[OrcWalkingTexture] replacement texture mounted")This script does not replace the texture by itself. The replacement happens because the .vmz contains a file at the same resource path as the vanilla game texture. The script is just a simple load check.
Put this file at:
OrcWalkingTexture/pack_vmz.ps1
$ErrorActionPreference = "Stop"
$modRoot = Split-Path -Parent $MyInvocation.MyCommand.Path
$outName = "OrcWalkingTexture.vmz"
$outPath = Join-Path $modRoot $outName
$tmpZip = Join-Path $modRoot "OrcWalkingTexture.zip"
if (Test-Path -LiteralPath $outPath) {
Remove-Item -LiteralPath $outPath -Force
}
if (Test-Path -LiteralPath $tmpZip) {
Remove-Item -LiteralPath $tmpZip -Force
}
$files = @(
"mod.txt",
"enemies/orc_top_down_walking.png",
"scripts/texture_mod.gd"
)
foreach ($file in $files) {
$full = Join-Path $modRoot $file
if (-not (Test-Path -LiteralPath $full)) {
throw "Missing required file: $file"
}
}
Compress-Archive `
-Path `
(Join-Path $modRoot "mod.txt"), `
(Join-Path $modRoot "enemies"), `
(Join-Path $modRoot "scripts") `
-DestinationPath $tmpZip `
-Force
Rename-Item -LiteralPath $tmpZip -NewName $outName
Write-Host "Created $outPath"Run it in PowerShell:
cd "C:\Path\To\OrcWalkingTexture"
.\pack_vmz.ps1You should get:
OrcWalkingTexture.vmz
.vmz is zip-compatible. OrcKit treats it as a mod archive and mounts it into the game.
Copy the .vmz into the game mods folder:
C:\Program Files (x86)\Steam\steamapps\common\Sir, We Have an Orc Problem Playtest\mods\OrcWalkingTexture.vmz
Launch the game, open the OrcKit Mods menu, and make sure the mod is enabled.
If another mod also replaces the same texture, put this mod later/higher in load order so it wins.
OrcWalkingTexture/
mod.txt
pack_vmz.ps1
enemies/
orc_top_down_walking.png
scripts/
texture_mod.gd
After launching the game, check the Godot log for:
[OrcWalkingTexture] loaded
[OrcWalkingTexture] replacement texture mounted
If you see replacement texture did not load, the path inside the .vmz is wrong or the PNG is missing from the archive.
Wrong: extra folder inside the .vmz.
OrcWalkingTexture/enemies/orc_top_down_walking.png
Correct inside the .vmz:
enemies/orc_top_down_walking.png
Wrong: filename is close but not exact.
enemies/orc-top-down-walking.png
enemies/orc_top_down_walk.png
Correct:
enemies/orc_top_down_walking.png
Wrong: mod.txt is nested.
OrcWalkingTexture/mod.txt
Correct inside the .vmz:
mod.txt
- Mod is packed as
.vmz. -
mod.txtis at the archive root. - File is named exactly
orc_top_down_walking.png. - File is inside
enemies/at the archive root. - Runtime path is exactly
res://enemies/orc_top_down_walking.png. - Optional script is at
res://scripts/texture_mod.gd. -
.vmzis placed in the gamemodsfolder. - Mod is enabled in OrcKit.
- Load order is higher/later than other mods replacing the same texture.
OrcKit developer wiki for Sir, We Have an Orc Problem Playtest mods. These pages document OrcKit 1.0.0.