Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

xgs track extraction (.stm, .dat)

Featured Replies

  • Localization

i was able to extract the stm formats (exient streamed envirnoment) of the tracks with this scriptstm.zip, though the model is in a .dat file format, the rest of the models in the game uses .xgm, exient's properitary model format

some of the files i was able to analyze inside:

.mp1 - material file

.tex - texture reference, game uses exient xgt

.q02, .q03 - submesh references

.pvs - scene file

samples:stm extracted.zip extracted .stm

https://mega.nz/file/4E8zHDJC#QczQ6FCOMqwbLZztg0rYsizyMPu7KCbPEHtTqrAHLUE original stm file (seedway track 1)

https://mega.nz/file/EcNXHZgQ#L1iaxk8zRciJ0--D_le57zmMFVtSZmDdUUNtTeDGFNM blast off model

https://mega.nz/file/ZEUwibYS#Y9SpTHJx1fMyTh44BCjiA6W2Hdy7OFQA9KSBpxNzEvA sub zero track 3

topic name is now changed because i found out other games than angry birds go use stm files

 

Edited by testing4562145

On 8/19/2024 at 3:14 PM, testing4562145 said:

the cars are stored in .xgm instead, i think transformers uses the same format for it's levels

Yeah, they use xgm, and mariokart64n from XenHax already made a script that imports those into blender, levels and cars.
Tho, AB Go's format is different. I tried importing Go's track meshes with this, but it didn't work. Maybe someone could modify this script to work with those files?

XGM.py

Edited by RoadKingGod

  • 3 months later...

Has anyone fixed the script for the track meshes?

  • Supporter

stm, .dat, .xgm. Nobody clearly said what is what. Somebody said .stm are tracks, another one said .xgm are models (cars) but no one knows what exactly their format is.

No one wrote about the difference between Angry bird tracks and those of AB Go.

So I have my doubts that anyone will care for the XGM.py script.

Edited by shak-otay

  • Author
  • Localization
On 8/19/2024 at 3:14 PM, testing4562145 said:

the cars are stored in .xgm instead, i think transformers uses the same format for it's levels

this applies for the rest of the models besides the tracks (like the characters, objects, menu)

  • 2 months later...
  • Author
  • Localization
On 12/12/2024 at 8:53 AM, shak-otay said:

No one wrote about the difference between Angry bird tracks and those of AB Go

you do refer the game differentely, the angry bird tracks are the thing i'm talking about, there's no differences except the way it's said

  • Supporter
On 3/8/2025 at 10:55 AM, testing4562145 said:

you do refer the game differentely, the angry bird tracks are the thing i'm talking about,

Then you should change your thread's title which is "angry birds go track extraction"

Quote

there's no differences except the way it's said

"the way it's said"? What does that mean?

Edited by shak-otay

  • testing4562145 changed the title to xgs track extraction (.stm, .dat)
  • 5 months later...
  • Supporter

Hard to recall one year later, no matter how urgent it is.

edit: I checked a .dat file and it's rather simple to get a point cloud. In a hex editor check for a block where the 4th dword in a 16 bytes row is FFFFFFFF (this may vary but the last byte usually is FF, afaics).

So with an FVFsize of 16, a suiting vertex count and the 'noPtC' button in hex2obj switched to PtCld you get a view of a track when pressing the 'mesh' button.

Edited by shak-otay

On 8/26/2025 at 5:36 AM, shak-otay said:

Es difícil recordarlo un año después, por muy urgente que sea.

Editar: Revisé un archivo .dat y es bastante sencillo obtener una nube de puntos. En un editor hexadecimal, busca un bloque donde el cuarto dword en una fila de 16 bytes sea FFFFFFFF (esto puede variar, pero el último byte suele ser FF, según tengo entendido).

Entonces, con un FVFsize de 16, un conteo de vértices adecuado y el botón 'noPtC' en hex2obj cambiado a PtCld, obtiene una vista de una pista al presionar el botón 'malla'.

Thank you so much, it will help me a lot to understand the track! My goal is to recover the Rocky Road secret path collision (because I removed the fence collision but the road has no collision), so I want to understand concepts first and go little by little, starting with the point cloud. Sorry for saying it was urgent. Honestly, I made a mistake when I said that. I don't know why I said it, but I really appreciate your help. Best regards.

SecretPathRockyRoadT3R6.jpg

Edited by Cookingcakes

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.