lightbulb Blender DIF Export Plugin

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 394
  • Thank you received: 133
04 Dec 2024 20:12 - 08 Nov 2025 12:12 #1
io_dif
This is a Blender plugin to import and export MBG Torque DIF interiors and Torque Constructor CSX files. Supported Blender Versions: 2.8.0 to 4.5

Usage:
Import
File > Import > Torque (.dif).
It can't be any more simpler than that.

If you want to load a Torque Constructor (.csx) file and create a Torque DIF, use File > Import > Torque Constructor (.csx).

Export
File > Export > Torque (.dif)

Additional export options - Important!
  • Flip Faces: Flip the normals of the dif, in case the resultant DIF is inside out.
  • Double Faces: Make all the faces double sided, may increase lag during collision detection.
  • Max Polygons: Number of maximum triangles that a DIF can have before splitting into multiple DIFs. Reduce this number if export fails.
  • Apply Modifiers: Whether to apply modifiers to meshes before exporting.
  • Export Visible: Export only visible geometry.
  • Export Selected: Export only selected geometry.
  • Use Material Names: Use Material Names instead of file names of the material textures.
  • Optimize For Marble Blast: Make the resultant DIF optimized for Marble Blast. Uncheck this if you want to use this for other Torque games.
  • BSP Algorithm:
    • Fast (Default): Use a sampling algorithm to determine the best splitter. This method is inherently random and may not always yield optimal results.
    • Exhaustive: Use an exhaustive search algorithm to determine the best splitter. May take longer but builds more balanced trees. Deterministic algorithm.
    • None: Do not build a BSP Tree, utilize this for fast conversion times or if building the BSP Tree fails/hangs on export.
    • IMPORTANT: If your geometry is too complex, consider using None mode as there is no guarantee that a BSP Tree can be optimally built within set constraints.
    • IMPORTANT: BSP Trees are only used for raycasts and Drop To Ground feature in Marble Blast. If you are not using these features, you can safely disable the BSP Tree.
  • Point Epsilon: The minimum distance between two points to be considered different.
  • Plane Epsilon: Minimum difference between values of two plane to be considered equal.
  • Split Epsilon: Minimum difference between values of two splitting planes to be considered equal.
DIF Properties Panel
Located in the object properties panel
  • Interior Entity Type:
    • InteriorResource: normal static interior type
    • PathedInterior: moving platform
      • Marker Path: a curve object that describes the path of the moving platform. Each point will become a Marker
      • Marker Type: the smoothing to use on each marker
      • Total Time: the amount of time to complete the path
      • Start Time: the time that the platform should begin
      • Constant Speed: if the marker durations should instead be calculated to maintain a consistent speed
        • Speed: max speed in units per second
        • Start Index: Calculates Start Time based on marker index
        • Pause Duration: The time that the platform should spend at zero-length segments
    • Game Entity: represents an entity in the dif such as items
      • Game Class: the class of the entity such as "Item", "StaticShape", etc
      • Datablock: the datablock of the item.
      • Properties: a list of additional key value pairs which will be set to the object on Create Subs
    • Path Trigger: represents a trigger that will be added to the MustChange group
      • Datablock: the trigger datablock, MBG's types are TriggerGotoTarget and TriggerGotoDelayTarget
      • Pathed Interior: the target object
      • Calculate Target Time: if targetTime property should be created from a target marker index
        • Target Index: the marker to target
Limitations
  • Limited Game Entity rotation support: rotation field is not properly applied to Game Entities in vanilla Torque.
 Previews



Download
Current Version: 1.3.4

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy
Last edit: 08 Nov 2025 12:12 by RandomityGuy.
The following user(s) said Thank You: Weather, Go'way

Please Log in or Create an account to join the conversation.

  • RandomityGuy
  • RandomityGuy's Avatar Topic Author
  • Offline
  • Administrator
  • Administrator
  • This entire place is bruh
  • Posts: 394
  • Thank you received: 133
08 Nov 2025 12:14 #2
Changelogs since 1.3.0, since I've been forgetting to update this topic whenever there is a new release:

1.3.4
  • Finally fix all the UV bugs for real this time.

1.3.3
  • Fixed a critical bug where the exporter would use up all the memory of the machine in some rare cases.
  • The plugin now no longer exports degenerate triangles
  • [Keppy]: Added more PathedInterior options: Target Marker, Constant Speed
  • [Keppy]: Added support for rotations for entities and PathedInteriors. Rotation fix will work in the future PQ updates.


1.3.2
  • Finally fixed broken UVs during export for the last time hopefully.
  • [Keppy]: Added support for Path Triggers for Moving Platforms for both importing and exporting DIFs.
  • [Keppy]: Added more options for Moving Platforms: Marker Type, Total Time, Starting Time, and Reverse.
  • [Keppy]: Fixed bounding boxes of interiors being bigger than they should be.

1.3.1
  • Add support for invisible surfaces, to use them, give them a material named 'NULL' with no texture file attached to it.
  • Fixed moving platforms not exporting correctly.

Github:
github.com/RandomityGuy
Feel free to support me at ko-fi.com/randomityguy

Please Log in or Create an account to join the conversation.

Moderators: Doomblah
Time to create page: 0.811 seconds