-
Notifications
You must be signed in to change notification settings - Fork 0
Prey Format
The prey format splits a monolithic .materials.bin file into 10 categorised JSON files for easier editing and safer round-trip workflows. Each category contains only entries of a specific type, making it practical to edit VFX, particles, or lighting without touching material definitions.
Location: League Tools tab → Project Manager (prey buttons)
A .materials.bin file typically contains 500+ entries of mixed types: materials, VFX definitions, particle containers, lighting, visibility controllers, and more. The prey format breaks this into:
| File | Category | Type Hashes | Contents |
|---|---|---|---|
.prey.materials |
materials | 0xff9d3409 |
StaticMaterialDef entries |
.prey.vfx |
vfx | 0x45cd899f |
VfxSystemDefinitionData |
.prey.particles |
particles |
0xb25c0a3f, 0x24a31b3e, 0x1f1f50f2
|
MapPlaceableContainer, MapParticle |
.prey.lighting |
lighting |
0x169a2f9c, 0x6a4a3409, 0xdca35419
|
Sun, Bake, LightingV2 |
.prey.map |
map | 0xdde8c114 |
MapContainer (chunk references) |
.prey.visibility |
visibility |
0xe21083b5, 0xc406a533, 0xec733fe2, 0xe07edfa4, 0x4275b121
|
All visibility controllers |
.prey.banners |
banners | 0x2d5c96cd |
EsportsBannerData |
.prey.jungle_camps |
jungle_camps | 0x3f04641e |
JungleCampData |
.prey.navgrid |
navgrid |
0xb51e8bff, 0xbdc90544, 0xbf11c509
|
NavGrid configs |
.prey.extra |
extra | everything else | Cameras, vegetation, unknown types |
- Load a map in Project Manager.
- Click Convert to .prey.
- A
_prey/subdirectory is created next to your materials file:
data/maps/mapgeometry/map11/
├── sodapop_srs.materials.bin ← original binary
└── _prey/
├── sodapop_srs.prey.materials ← 400+ material defs
├── sodapop_srs.prey.vfx ← VFX definitions
├── sodapop_srs.prey.particles ← particle placements
├── sodapop_srs.prey.lighting ← sun/bake/lighting
├── sodapop_srs.prey.map ← map container
├── sodapop_srs.prey.visibility ← visibility controllers
├── sodapop_srs.prey.banners ← esports banners
├── sodapop_srs.prey.jungle_camps← jungle camp data
├── sodapop_srs.prey.navgrid ← nav grid config
└── sodapop_srs.prey.extra ← everything else
Edit categories independently:
- Modify particle transforms in Blender → Save All to .prey writes
.prey.particles - Change material samplers → Save All to .prey writes
.prey.materials - External JSON editing of any
.prey.*file is also supported
Click Rebuild .bin from .prey to reconstruct the full .materials.bin:
- Reads all 10
.prey.*files - Combines entries in the correct order
- Restores the PROP header and linked files
- Writes the binary
Click Open Prey Folder to open the _prey/ directory in your file manager.
Each .prey.* file is a JSON document:
{
"format": "prey_category",
"version": 1,
"category": "materials",
"source_map": "sodapop_srs",
"header": {
"magic": "PROP",
"version": 3
},
"linked_files": ["path/to/linked.bin"],
"entry_count": 412,
"entries": [
{
"path_hash": "0xa1b2c3d4",
"type_hash": "0xff9d3409",
"fields": [...]
}
]
}The addon can load prey categories into Blender as collections of empties, each representing a bin entry. This allows visual inspection and editing within Blender's Outliner.
from MapgeoAddon import prey_collections
# Load particles category into Blender collections
prey_collections.load_prey_categories("_prey/sodapop_srs", ["particles"])# Export modified collections back to prey files
prey_collections.save_prey_categories("_prey/sodapop_srs", ["particles"])A related but different format used by the Map Porter. A .materials.prey file contains only the differences between a source map and a base map:
{
"format": "materials.prey",
"version": 1,
"source_map": "milkshake_srs",
"base_map": "sodapop_srs",
"categories": {
"materials": {"count": 45, "entries": [...]},
"vfx": {"count": 12, "entries": [...]},
"particles": {"count": 8, "entries": [...]}
},
"total_added": 50,
"total_modified": 15,
"total_entries": 65
}This is used to port custom map content between seasonal slots without carrying the entire materials file. See Map Porter & Patcher for details.
The prey format is designed for lossless round-trip:
.materials.bin → Convert to .prey → Rebuild .bin from .prey → identical bytes
All entry data, field ordering, linked files, and header values are preserved through the split/rebuild cycle.
When using Export .materials.prey (in Map Porter), you can selectively include/exclude categories:
| Category | Default | Description |
|---|---|---|
| Materials | On | Custom StaticMaterialDef entries |
| VFX Definitions | On | Custom VfxSystemDefinitionData |
| Particles / MPC | On | Custom particle placements |
| Lighting | On | Custom sun, bake, lighting settings |
| Map Container | On | MapContainer chunk references |
| Visibility | On | Custom visibility controllers |
| Esports Banners | On | Banner data |
| Jungle Camps | On | Jungle camp visual data |
| Nav Grid | On | Navigation grid configs |
| Extra | On | Other entry types |
| Include Modified | On | Also include entries that exist in base but differ |