A few months ago, I was working on a
P3DTool
for manipulating Pure3D files through the command line. Life then happened and development kind of stopped.Fast forward to now, and I'm looking for ideas for utilities that would help modders. Whilst I've been in this community for a long time, the majority of my focus has been on Lua mods, which means I don't know what features would help in "normal" mod development.
So I'm looking for any suggestions on what would make your life easier. One example that I worked on for @Loren was a Pure3D Searcher, that could search the entire game's Pure3D files for a given query:
Pure3D Searcher
Console output:
Enter search query: shirtdollar Searching through 1965 files in "C:\SHAR\" for "shirtdollar"... 90. "BQG_shirtdollarShape8" (Animation (0x121000)).Name: BQG_shirtdollarShape8 90. "BQG_shirtdollarShape8" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape8" (Animation Group (0x121001)).Name: shirtdollarShape8 91. "PTRN_shirtdollar" (Animation (0x121000)).Name: PTRN_shirtdollar 91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollar" (Animation Group (0x121001)).Name: shirtdollar 91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 2. "shirtdollar2" (Animation Group (0x121001)).Name: shirtdollar2 91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 3. "shirtdollar12" (Animation Group (0x121001)).Name: shirtdollar12 91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 4. "shirtdollar5" (Animation Group (0x121001)).Name: shirtdollar5 91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 5. "shirtdollar6" (Animation Group (0x121001)).Name: shirtdollar6 91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 6. "shirtdollar7" (Animation Group (0x121001)).Name: shirtdollar7 91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 7. "shirtdollar8" (Animation Group (0x121001)).Name: shirtdollar8 102. "BQG_shirtdollarShape6" (Animation (0x121000)).Name: BQG_shirtdollarShape6 102. "BQG_shirtdollarShape6" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape6" (Animation Group (0x121001)).Name: shirtdollarShape6 113. "BQG_shirtdollarShape7" (Animation (0x121000)).Name: BQG_shirtdollarShape7 113. "BQG_shirtdollarShape7" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape7" (Animation Group (0x121001)).Name: shirtdollarShape7 138. "shirtdollar" (Skeleton (0x4500)).Name: shirtdollar 138. "shirtdollar" (Skeleton (0x4500)) -> 0. "shirtdollar" (Skeleton Joint (0x4501)).Name: shirtdollar 138. "shirtdollar" (Skeleton (0x4500)) -> 2. "shirtdollar2" (Skeleton Joint (0x4501)).Name: shirtdollar2 138. "shirtdollar" (Skeleton (0x4500)) -> 3. "shirtdollar12" (Skeleton Joint (0x4501)).Name: shirtdollar12 138. "shirtdollar" (Skeleton (0x4500)) -> 4. "shirtdollar5" (Skeleton Joint (0x4501)).Name: shirtdollar5 138. "shirtdollar" (Skeleton (0x4500)) -> 5. "shirtdollar6" (Skeleton Joint (0x4501)).Name: shirtdollar6 138. "shirtdollar" (Skeleton (0x4500)) -> 6. "shirtdollar7" (Skeleton Joint (0x4501)).Name: shirtdollar7 138. "shirtdollar" (Skeleton (0x4500)) -> 7. "shirtdollar8" (Skeleton Joint (0x4501)).Name: shirtdollar8 155. "shirtdollarShape5" (Particle System Factory (0x15800)).Name: shirtdollarShape5 155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)).Name: shirtdollarShape4 155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)).Name: shirtdollarShape4 155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 0. Old Particle Animation (0x15808) -> 0. "shirtdollarShape4" (Animation (0x121000)).Name: shirtdollarShape4 155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 1. Old Emitter Animation (0x15809) -> 0. "shirtdollarShape4" (Animation (0x121000)).Name: shirtdollarShape4 155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 1. Old Emitter Animation (0x15809) -> 0. "shirtdollarShape4" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape4" (Animation Group (0x121001)).Name: shirtdollarShape4 155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 2. Old Generator Animation (0x1580A) -> 0. "shirtdollarShape4" (Animation (0x121000)).Name: shirtdollarShape4 155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 2. Old Generator Animation (0x1580A) -> 0. "shirtdollarShape4" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape4" (Animation Group (0x121001)).Name: shirtdollarShape4 168. "shirtdollarShape5" (Particle System 2 (0x15801)).Name: shirtdollarShape5 168. "shirtdollarShape5" (Particle System 2 (0x15801)).FactoryName: shirtdollarShape5 200. "shirtdollarShape8" (Old Billboard Quad Group (0x17002)).Name: shirtdollarShape8 200. "shirtdollarShape8" (Old Billboard Quad Group (0x17002)) -> 0. "shirtdollarShape8" (Old Billboard Quad (0x17001)).Name: shirtdollarShape8 201. "shirtdollarShape7" (Old Billboard Quad Group (0x17002)).Name: shirtdollarShape7 201. "shirtdollarShape7" (Old Billboard Quad Group (0x17002)) -> 0. "shirtdollarShape7" (Old Billboard Quad (0x17001)).Name: shirtdollarShape7 208. "shirtdollarShape6" (Old Billboard Quad Group (0x17002)).Name: shirtdollarShape6 208. "shirtdollarShape6" (Old Billboard Quad Group (0x17002)) -> 0. "shirtdollarShape6" (Old Billboard Quad (0x17001)).Name: shirtdollarShape6 222. "shirtdollar2Shape" (Mesh (0x10000)).Name: shirtdollar2Shape 246. "shirtdollar" (Composite Drawable (0x4512)).Name: shirtdollar 246. "shirtdollar" (Composite Drawable (0x4512)).SkeletonName: shirtdollar 246. "shirtdollar" (Composite Drawable (0x4512)) -> 1. Composite Drawable Prop List (0x4514) -> 0. "shirtdollarShape6" (Composite Drawable Prop (0x4516)).Name: shirtdollarShape6 246. "shirtdollar" (Composite Drawable (0x4512)) -> 1. Composite Drawable Prop List (0x4514) -> 1. "shirtdollarShape7" (Composite Drawable Prop (0x4516)).Name: shirtdollarShape7 246. "shirtdollar" (Composite Drawable (0x4512)) -> 1. Composite Drawable Prop List (0x4514) -> 2. "shirtdollarShape8" (Composite Drawable Prop (0x4516)).Name: shirtdollarShape8 246. "shirtdollar" (Composite Drawable (0x4512)) -> 1. Composite Drawable Prop List (0x4514) -> 4. "shirtdollar2Shape" (Composite Drawable Prop (0x4516)).Name: shirtdollar2Shape 246. "shirtdollar" (Composite Drawable (0x4512)) -> 2. Composite Drawable Effect List (0x4517) -> 0. "shirtdollarShape5" (Composite Drawable Effect (0x4518)).Name: shirtdollarShape5 296. "PTRN_shirtdollar" (Old Frame Controller (0x121200)).Name: PTRN_shirtdollar 296. "PTRN_shirtdollar" (Old Frame Controller (0x121200)).HierarchyName: shirtdollar 296. "PTRN_shirtdollar" (Old Frame Controller (0x121200)).AnimationName: PTRN_shirtdollar 297. "BQG_shirtdollarShape8" (Old Frame Controller (0x121200)).Name: BQG_shirtdollarShape8 297. "BQG_shirtdollarShape8" (Old Frame Controller (0x121200)).HierarchyName: shirtdollarShape8 297. "BQG_shirtdollarShape8" (Old Frame Controller (0x121200)).AnimationName: BQG_shirtdollarShape8 298. "BQG_shirtdollarShape7" (Old Frame Controller (0x121200)).Name: BQG_shirtdollarShape7 298. "BQG_shirtdollarShape7" (Old Frame Controller (0x121200)).HierarchyName: shirtdollarShape7 298. "BQG_shirtdollarShape7" (Old Frame Controller (0x121200)).AnimationName: BQG_shirtdollarShape7 299. "EFX_shirtdollarShape5" (Old Frame Controller (0x121200)).Name: EFX_shirtdollarShape5 299. "EFX_shirtdollarShape5" (Old Frame Controller (0x121200)).HierarchyName: shirtdollarShape5 300. "BQG_shirtdollarShape6" (Old Frame Controller (0x121200)).Name: BQG_shirtdollarShape6 300. "BQG_shirtdollarShape6" (Old Frame Controller (0x121200)).HierarchyName: shirtdollarShape6 300. "BQG_shirtdollarShape6" (Old Frame Controller (0x121200)).AnimationName: BQG_shirtdollarShape6 336. "shirtdollar_controller" (Multi Controller (0x48A0)).Name: shirtdollar_controller 336. "shirtdollar_controller" (Multi Controller (0x48A0)) -> 0. Multi Controller Tracks (0x48A1).Tracks: (Array) Found 62 matches in 1 files for query "shirtdollar". Results written to: Results_20241224015849.csvCSV output:
File,Path,Property,Value art\missions\generic\missgen.p3d,90. "BQG_shirtdollarShape8" (Animation (0x121000)),Name,BQG_shirtdollarShape8 art\missions\generic\missgen.p3d,90. "BQG_shirtdollarShape8" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape8" (Animation Group (0x121001)),Name,shirtdollarShape8 art\missions\generic\missgen.p3d,91. "PTRN_shirtdollar" (Animation (0x121000)),Name,PTRN_shirtdollar art\missions\generic\missgen.p3d,91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollar" (Animation Group (0x121001)),Name,shirtdollar art\missions\generic\missgen.p3d,91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 2. "shirtdollar2" (Animation Group (0x121001)),Name,shirtdollar2 art\missions\generic\missgen.p3d,91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 3. "shirtdollar12" (Animation Group (0x121001)),Name,shirtdollar12 art\missions\generic\missgen.p3d,91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 4. "shirtdollar5" (Animation Group (0x121001)),Name,shirtdollar5 art\missions\generic\missgen.p3d,91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 5. "shirtdollar6" (Animation Group (0x121001)),Name,shirtdollar6 art\missions\generic\missgen.p3d,91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 6. "shirtdollar7" (Animation Group (0x121001)),Name,shirtdollar7 art\missions\generic\missgen.p3d,91. "PTRN_shirtdollar" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 7. "shirtdollar8" (Animation Group (0x121001)),Name,shirtdollar8 art\missions\generic\missgen.p3d,102. "BQG_shirtdollarShape6" (Animation (0x121000)),Name,BQG_shirtdollarShape6 art\missions\generic\missgen.p3d,102. "BQG_shirtdollarShape6" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape6" (Animation Group (0x121001)),Name,shirtdollarShape6 art\missions\generic\missgen.p3d,113. "BQG_shirtdollarShape7" (Animation (0x121000)),Name,BQG_shirtdollarShape7 art\missions\generic\missgen.p3d,113. "BQG_shirtdollarShape7" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape7" (Animation Group (0x121001)),Name,shirtdollarShape7 art\missions\generic\missgen.p3d,138. "shirtdollar" (Skeleton (0x4500)),Name,shirtdollar art\missions\generic\missgen.p3d,138. "shirtdollar" (Skeleton (0x4500)) -> 0. "shirtdollar" (Skeleton Joint (0x4501)),Name,shirtdollar art\missions\generic\missgen.p3d,138. "shirtdollar" (Skeleton (0x4500)) -> 2. "shirtdollar2" (Skeleton Joint (0x4501)),Name,shirtdollar2 art\missions\generic\missgen.p3d,138. "shirtdollar" (Skeleton (0x4500)) -> 3. "shirtdollar12" (Skeleton Joint (0x4501)),Name,shirtdollar12 art\missions\generic\missgen.p3d,138. "shirtdollar" (Skeleton (0x4500)) -> 4. "shirtdollar5" (Skeleton Joint (0x4501)),Name,shirtdollar5 art\missions\generic\missgen.p3d,138. "shirtdollar" (Skeleton (0x4500)) -> 5. "shirtdollar6" (Skeleton Joint (0x4501)),Name,shirtdollar6 art\missions\generic\missgen.p3d,138. "shirtdollar" (Skeleton (0x4500)) -> 6. "shirtdollar7" (Skeleton Joint (0x4501)),Name,shirtdollar7 art\missions\generic\missgen.p3d,138. "shirtdollar" (Skeleton (0x4500)) -> 7. "shirtdollar8" (Skeleton Joint (0x4501)),Name,shirtdollar8 art\missions\generic\missgen.p3d,155. "shirtdollarShape5" (Particle System Factory (0x15800)),Name,shirtdollarShape5 art\missions\generic\missgen.p3d,155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)),Name,shirtdollarShape4 art\missions\generic\missgen.p3d,155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)),Name,shirtdollarShape4 art\missions\generic\missgen.p3d,155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 0. Old Particle Animation (0x15808) -> 0. "shirtdollarShape4" (Animation (0x121000)),Name,shirtdollarShape4 art\missions\generic\missgen.p3d,155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 1. Old Emitter Animation (0x15809) -> 0. "shirtdollarShape4" (Animation (0x121000)),Name,shirtdollarShape4 art\missions\generic\missgen.p3d,155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 1. Old Emitter Animation (0x15809) -> 0. "shirtdollarShape4" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape4" (Animation Group (0x121001)),Name,shirtdollarShape4 art\missions\generic\missgen.p3d,155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 2. Old Generator Animation (0x1580A) -> 0. "shirtdollarShape4" (Animation (0x121000)),Name,shirtdollarShape4 art\missions\generic\missgen.p3d,155. "shirtdollarShape5" (Particle System Factory (0x15800)) -> 1. "shirtdollarShape4" (Old Sprite Emitter (0x15806)) -> 0. "shirtdollarShape4" (Old Base Emitter (0x15805)) -> 2. Old Generator Animation (0x1580A) -> 0. "shirtdollarShape4" (Animation (0x121000)) -> 1. Animation Group List (0x121002) -> 0. "shirtdollarShape4" (Animation Group (0x121001)),Name,shirtdollarShape4 art\missions\generic\missgen.p3d,168. "shirtdollarShape5" (Particle System 2 (0x15801)),Name,shirtdollarShape5 art\missions\generic\missgen.p3d,168. "shirtdollarShape5" (Particle System 2 (0x15801)),FactoryName,shirtdollarShape5 art\missions\generic\missgen.p3d,200. "shirtdollarShape8" (Old Billboard Quad Group (0x17002)),Name,shirtdollarShape8 art\missions\generic\missgen.p3d,200. "shirtdollarShape8" (Old Billboard Quad Group (0x17002)) -> 0. "shirtdollarShape8" (Old Billboard Quad (0x17001)),Name,shirtdollarShape8 art\missions\generic\missgen.p3d,201. "shirtdollarShape7" (Old Billboard Quad Group (0x17002)),Name,shirtdollarShape7 art\missions\generic\missgen.p3d,201. "shirtdollarShape7" (Old Billboard Quad Group (0x17002)) -> 0. "shirtdollarShape7" (Old Billboard Quad (0x17001)),Name,shirtdollarShape7 art\missions\generic\missgen.p3d,208. "shirtdollarShape6" (Old Billboard Quad Group (0x17002)),Name,shirtdollarShape6 art\missions\generic\missgen.p3d,208. "shirtdollarShape6" (Old Billboard Quad Group (0x17002)) -> 0. "shirtdollarShape6" (Old Billboard Quad (0x17001)),Name,shirtdollarShape6 art\missions\generic\missgen.p3d,222. "shirtdollar2Shape" (Mesh (0x10000)),Name,shirtdollar2Shape art\missions\generic\missgen.p3d,246. "shirtdollar" (Composite Drawable (0x4512)),Name,shirtdollar art\missions\generic\missgen.p3d,246. "shirtdollar" (Composite Drawable (0x4512)),SkeletonName,shirtdollar art\missions\generic\missgen.p3d,246. "shirtdollar" (Composite Drawable (0x4512)) -> 1. Composite Drawable Prop List (0x4514) -> 0. "shirtdollarShape6" (Composite Drawable Prop (0x4516)),Name,shirtdollarShape6 art\missions\generic\missgen.p3d,246. "shirtdollar" (Composite Drawable (0x4512)) -> 1. Composite Drawable Prop List (0x4514) -> 1. "shirtdollarShape7" (Composite Drawable Prop (0x4516)),Name,shirtdollarShape7 art\missions\generic\missgen.p3d,246. "shirtdollar" (Composite Drawable (0x4512)) -> 1. Composite Drawable Prop List (0x4514) -> 2. "shirtdollarShape8" (Composite Drawable Prop (0x4516)),Name,shirtdollarShape8 art\missions\generic\missgen.p3d,246. "shirtdollar" (Composite Drawable (0x4512)) -> 1. Composite Drawable Prop List (0x4514) -> 4. "shirtdollar2Shape" (Composite Drawable Prop (0x4516)),Name,shirtdollar2Shape art\missions\generic\missgen.p3d,246. "shirtdollar" (Composite Drawable (0x4512)) -> 2. Composite Drawable Effect List (0x4517) -> 0. "shirtdollarShape5" (Composite Drawable Effect (0x4518)),Name,shirtdollarShape5 art\missions\generic\missgen.p3d,296. "PTRN_shirtdollar" (Old Frame Controller (0x121200)),Name,PTRN_shirtdollar art\missions\generic\missgen.p3d,296. "PTRN_shirtdollar" (Old Frame Controller (0x121200)),HierarchyName,shirtdollar art\missions\generic\missgen.p3d,296. "PTRN_shirtdollar" (Old Frame Controller (0x121200)),AnimationName,PTRN_shirtdollar art\missions\generic\missgen.p3d,297. "BQG_shirtdollarShape8" (Old Frame Controller (0x121200)),Name,BQG_shirtdollarShape8 art\missions\generic\missgen.p3d,297. "BQG_shirtdollarShape8" (Old Frame Controller (0x121200)),HierarchyName,shirtdollarShape8 art\missions\generic\missgen.p3d,297. "BQG_shirtdollarShape8" (Old Frame Controller (0x121200)),AnimationName,BQG_shirtdollarShape8 art\missions\generic\missgen.p3d,298. "BQG_shirtdollarShape7" (Old Frame Controller (0x121200)),Name,BQG_shirtdollarShape7 art\missions\generic\missgen.p3d,298. "BQG_shirtdollarShape7" (Old Frame Controller (0x121200)),HierarchyName,shirtdollarShape7 art\missions\generic\missgen.p3d,298. "BQG_shirtdollarShape7" (Old Frame Controller (0x121200)),AnimationName,BQG_shirtdollarShape7 art\missions\generic\missgen.p3d,299. "EFX_shirtdollarShape5" (Old Frame Controller (0x121200)),Name,EFX_shirtdollarShape5 art\missions\generic\missgen.p3d,299. "EFX_shirtdollarShape5" (Old Frame Controller (0x121200)),HierarchyName,shirtdollarShape5 art\missions\generic\missgen.p3d,300. "BQG_shirtdollarShape6" (Old Frame Controller (0x121200)),Name,BQG_shirtdollarShape6 art\missions\generic\missgen.p3d,300. "BQG_shirtdollarShape6" (Old Frame Controller (0x121200)),HierarchyName,shirtdollarShape6 art\missions\generic\missgen.p3d,300. "BQG_shirtdollarShape6" (Old Frame Controller (0x121200)),AnimationName,BQG_shirtdollarShape6 art\missions\generic\missgen.p3d,336. "shirtdollar_controller" (Multi Controller (0x48A0)),Name,shirtdollar_controller art\missions\generic\missgen.p3d,336. "shirtdollar_controller" (Multi Controller (0x48A0)) -> 0. Multi Controller Tracks (0x48A1),Tracks,(Array)
Anything Pure3D related that would improve modding is appreciated, and I'll try work on them whilst I have time.
Thanks,
Josh