A repository of images for assets in the game Unturned.
Images are available on the images branch.
For information on contributing, see the contributing page.
Unturned Images is a public, open-source repository of images of in-game assets to be used either by plugins or websites.
The asset images are accessible via the jsDeliver CDN. For an example, view the Usage section.
This project is public and free to anyone to be used by anyone and pull requests will be reviewed.
To access images, it's recommended to use the jsDeliver CDN. For item images, it's as simple as substituting the item ID in the following example.
When an image for the ID doesn't exist, the HTTP GET request will return a 404 error code.
Eaglefire image URL (item ID 4):
https://cdn.jsdelivr.net/gh/SilKsPlugins/UnturnedImages@images/vanilla/items/4.png
Blimp image URL (vehicle ID 189):
https://cdn.jsdelivr.net/gh/SilKsPlugins/UnturnedImages@images/vanilla/vehicles/189.png
- Modded assets are planned and will likely start with the most popular mods (i.e. Elver). After which pull requests to add images for other mods will be accepted.
The tools/UnturnedImages.Module folder contains an Unturned module for generating asset icons programmatically. This module provides:
- Icon generation for items and vehicles (vanilla and modded)
- Automatic crash recovery - if an asset crashes the game, it's automatically skipped on the next run
- Auto-start - unattended icon generation when the game starts
- PowerShell automation script - for fully automated batch processing with restart capability
-
Build the module:
cd tools/UnturnedImages.Module dotnet build -c Release -
Copy the output to your Unturned installation:
Unturned/ └── Modules/ └── unturnedimages/ ├── UnturnedImages.Module.dll └── UnturnedImages.Module.Bootstrapper.dll -
Create a
config.jsonin your Unturned root folder (see Configuration).
Create a config.json file in your Unturned installation folder:
{
"SkipGuids": [],
"AutoStart": {
"Enabled": false,
"Mode": "all",
"ModId": null,
"GenerateItems": true,
"GenerateVehicles": true,
"ItemAngles": null,
"VehicleAngles": null,
"QuitWhenDone": false,
"StartDelaySeconds": 5
}
}| Option | Type | Default | Description |
|---|---|---|---|
SkipGuids |
Guid[] |
[] |
List of asset GUIDs to skip. Automatically populated when assets cause crashes. |
AutoStart.Enabled |
bool |
false |
Enable automatic icon generation on game startup. |
AutoStart.Mode |
string |
"all" |
Generation mode: "all", "items", "vehicles", or "mod". |
AutoStart.ModId |
ulong? |
null |
Workshop mod ID when Mode is "mod". |
AutoStart.GenerateItems |
bool |
true |
Generate item icons (for "all" or "mod" mode). |
AutoStart.GenerateVehicles |
bool |
true |
Generate vehicle icons (for "all" or "mod" mode). |
AutoStart.ItemAngles |
float[] |
null |
Custom rotation angles [X, Y, Z] for item icons. |
AutoStart.VehicleAngles |
float[] |
null |
Custom rotation angles [X, Y, Z] for vehicle icons. |
AutoStart.QuitWhenDone |
bool |
false |
Automatically quit the game when generation completes. |
AutoStart.StartDelaySeconds |
float |
5 |
Delay in seconds before starting generation after game loads. |
Generate all vanilla icons:
{
"SkipGuids": [],
"AutoStart": {
"Enabled": true,
"Mode": "all",
"GenerateItems": true,
"GenerateVehicles": true,
"QuitWhenDone": true,
"StartDelaySeconds": 10
}
}Generate icons for a specific workshop mod:
{
"SkipGuids": [],
"AutoStart": {
"Enabled": true,
"Mode": "mod",
"ModId": 3222327985,
"GenerateItems": true,
"GenerateVehicles": true,
"QuitWhenDone": true,
"StartDelaySeconds": 10
}
}Generate only vehicle icons:
{
"SkipGuids": [],
"AutoStart": {
"Enabled": true,
"Mode": "vehicles",
"QuitWhenDone": true,
"StartDelaySeconds": 5
}
}Some assets may cause the game to crash when generating icons (due to missing models, shader issues, etc.). The module handles this automatically:
- Before processing each asset, it writes the asset GUID to
pending_asset.txt - After successful processing, the file is deleted
- If the game crashes, the file remains
- On the next startup, the module detects this file, adds the GUID to
SkipGuids, and saves the config
This means you can run the generator unattended - crashes are handled automatically and the problematic assets are skipped on subsequent runs.
For fully unattended batch processing, use the PowerShell script in tools/UnturnedImages.Module/Scripts/:
- Copy
RunIconGenerator.ps1andRunIconGenerator.batto your Unturned folder - Configure
config.jsonwithAutoStart.Enabled: trueandQuitWhenDone: true - Run
RunIconGenerator.bat(orRunIconGenerator.ps1directly from PowerShell)
- Auto-restart on crash: If the game crashes, it restarts automatically
- Crash tracking: Shows which assets caused crashes
- Completion detection: Stops when
generation_complete.txtis created - Statistics: Shows total runtime and restart count
.\RunIconGenerator.ps1 [-UnturnedPath <path>] [-MaxRestarts <int>] [-RestartDelay <int>] [-StopOnComplete <bool>]| Parameter | Default | Description |
|---|---|---|
-UnturnedPath |
C:\Program Files (x86)\Steam\steamapps\common\Unturned |
Path to Unturned installation |
-MaxRestarts |
0 (unlimited) |
Maximum number of restarts before stopping |
-RestartDelay |
5 |
Seconds to wait between crash and restart |
-StopOnComplete |
$true |
Stop when generation completes |
# Use defaults
.\RunIconGenerator.ps1
# Custom Unturned path with max 50 restarts
.\RunIconGenerator.ps1 -UnturnedPath "D:\Games\Unturned" -MaxRestarts 50
# Quick restarts with 2 second delay
.\RunIconGenerator.ps1 -RestartDelay 2Generated icons are saved to:
- Items:
Unturned/Extras/Items/{id}.png - Vehicles:
Unturned/Extras/Vehicles/{id}.png
- Check
Logs/Client.logfor[AutoStart]messages - Ensure
AutoStart.Enabledistruein config.json - Increase
StartDelaySecondsif assets haven't finished loading
Check config.json - the crashed asset's GUID should be in SkipGuids. If not:
- Check if
pending_asset.txtexists in the Unturned folder - Manually add the GUID to
SkipGuidsif needed
- Ensure the module DLLs are in
Modules/unturnedimages/ - Check
Logs/Client.logfor errors - Verify the module is loading (look for UnturnedImages log messages)