SOBJ Editing - Ezekial711/MonsterHunterWorldModding GitHub Wiki
General
Spawning Gimmick Objects, Monsters, Endemic Creatures and NPCs is controlled in .sobj
(rSetObject) files.
A single .sobj
file can contain multiple objects to spawn and is not exclusive to one spawn type (see below). *.sobj
files can be referenced in *.sobjl
(rSetObjectList).
Unfortunately, you can't create a new sobjl as the game only references existing sobjl(s).
File format analysis
rSetObjectList
typedef struct {
int32 FileType;
uint32 ObjectCount;
} Header;
typedef struct {
uint32 StartOfHeader; //Always 01 00 00 00
int32 Index;
string Command; /Always rSetObject
string Path; //Relative Path is nativePC
} rSetObject;
rSetObject
typedef struct {
long fType<name="File Type">;
if (fType == 6451059) { //This is for SOBJs
long Version;
long sType;
long SOHCnt;
char SOH[SOHCnt]; //Only for Otomos
}
uint32 ObjectCount;
} Header;
typedef struct {
byte StartOfHeader;
string CommandType;
long EndOfTrail;
Spawn spawn; //XYZ Struct
string ObjectName;
oStruct ostruct; //Unknown Struct
string pointA;
string pointB;
short NULL;
uint32 ParameterCount;
Parameters parameters[ParameterCount];
byte CD[64];
byte gm;
if(gm != 0){GM gm<name="GM Unknown">;}
...
...
SOBJ Data Structs
} SOBJ;
You can download the full template from https://github.com/DaveuRrr/MHWResearch
Spawn types
There are many more spawn types, hence only those explored will be listed below.
Descriptor | Use |
---|---|
cAssetBasicSetObject | Gimmick Object |
EMDesireSetter | Enemy Monster Routing |
EMGroupSetter | Enemy Monster Small Spawn (Zako) |
EMRepopSetter | Enemy Monster Respawn |
EmSetter | Enemy Monster Spawn (Boss) |
cFishingFloatSetter | Unknown |
cKimenTraceLogSetter | Unknown |
cNpcTraceLogSetter | Unkown |
cPlJumpPos | Player Spawn |
cOtGroupSetter | Grimalkyne Spawn |
cOtOtasukeSetter | Grimalkyne Helper Spawn |
cOtPosSetter | Palico Sit Command |
cOtRandomSetter | Random Palico Helper GuildCard |
cTerrainPoint | Unknown |
cTraceLogSetter | Unknown |
cSetAnimalArea | Endemic Creature |
cSetFishArea | Endemic Creature |
cQuestNpcSetter | NPC |
cVillageNpcSetter | NPC |
cWildCatTraceLogSetter | Unknown |
Example
Depending on the extent of your modification, it is advised to create a new .sobj
and reference it in the correct .sobjl
. *Please be considerate of other peoples mods that may conflict with existing sobjls.
Credit to Vuze, Dave uRrr, Material, DeathCream, Fandirus