Before you release Racetrack, consider using this custom function I made for CLA+Monthly Packs. Basically it applies whatever custom marble attribute you specify to all possible datablock names between MBG, MBP, and MBP 1.20 to make sure the custom attribute is applied (it's not really practical/possible to just get the current datablock in use to selectively apply the attribute).
Code:function setMarbleAttributes(%attribute, %value)
{
eval(MarbleOne. @ %attribute @ = @ %value @
;
eval(MarbleTwo. @ %attribute @ = @ %value @
;
eval(MarbleThree. @ %attribute @ = @ %value @
;
eval(MarbleFour. @ %attribute @ = @ %value @
;
eval(MarbleFive. @ %attribute @ = @ %value @
;
eval(MarbleSix. @ %attribute @ = @ %value @
;
eval(MarbleSeven. @ %attribute @ = @ %value @
;
eval(MarbleEight. @ %attribute @ = @ %value @
;
eval(MarbleNine. @ %attribute @ = @ %value @
;
eval(MarbleTen. @ %attribute @ = @ %value @
;
eval(MarbleEleven. @ %attribute @ = @ %value @
;
eval(MarbleTwelve. @ %attribute @ = @ %value @
;
eval(MarbleThirteen. @ %attribute @ = @ %value @
;
eval(MarbleFourteen. @ %attribute @ = @ %value @
;
eval(MarbleFifteen. @ %attribute @ = @ %value @
;
eval(MarbleSixteen. @ %attribute @ = @ %value @
;
eval(MarbleSeventeen. @ %attribute @ = @ %value @
;
eval(MarbleEighteen. @ %attribute @ = @ %value @
;
eval(MarbleNineteen. @ %attribute @ = @ %value @
;
eval(MarbleTwenty. @ %attribute @ = @ %value @
;
eval(MarbleTwentyOne. @ %attribute @ = @ %value @
;
eval(MarbleTwentyTwo. @ %attribute @ = @ %value @
;
eval(MarbleTwentyThree. @ %attribute @ = @ %value @
;
eval(MarbleTwentyFour. @ %attribute @ = @ %value @
;
eval(MarbleTwentyFive. @ %attribute @ = @ %value @
;
eval(MarbleTwentySix. @ %attribute @ = @ %value @
;
eval(MarbleTwentySeven. @ %attribute @ = @ %value @
;
eval(MarbleTwentyEight. @ %attribute @ = @ %value @
;
eval(MarbleTwentyNine. @ %attribute @ = @ %value @
;
eval(MarbleThirty. @ %attribute @ = @ %value @
;
eval(MarbleThirtyOne. @ %attribute @ = @ %value @
;
eval(MarbleThirtyTwo. @ %attribute @ = @ %value @
;
eval(MarbleThirtyThree. @ %attribute @ = @ %value @
;
eval(MarbleThirtyFour. @ %attribute @ = @ %value @
;
eval(MarbleThirtyFive. @ %attribute @ = @ %value @
;
eval(MarbleThirtySix. @ %attribute @ = @ %value @
;
eval(MarbleThirtySeven. @ %attribute @ = @ %value @
;
eval(MarbleThirtyEight. @ %attribute @ = @ %value @
;
eval(MarbleThirtyNine. @ %attribute @ = @ %value @
;
eval(MarbleForty. @ %attribute @ = @ %value @
;
eval(defaultMarble. @ %attribute @ = @ %value @
;
eval(ThreeDMarble. @ %attribute @ = @ %value @
;
eval(MidPMarble. @ %attribute @ = @ %value @
;
eval(ggMarble. @ %attribute @ = @ %value @
;
eval(sm1Marble. @ %attribute @ = @ %value @
;
eval(sm2Marble. @ %attribute @ = @ %value @
;
eval(sm3Marble. @ %attribute @ = @ %value @
;
eval(bm1Marble. @ %attribute @ = @ %value @
;
eval(bm2Marble. @ %attribute @ = @ %value @
;
eval(bm3Marble. @ %attribute @ = @ %value @
;
eval(CustomMarble. @ %attribute @ = @ %value @
;
}
Then you can run the function wherever you want (at the beginning of the .mis, within another function, etc. So if you have an instance of defaultmarble.gravity = 0; you would call the function using:
setMarbleAttributes(
gravity,
0);
You can change the bold to whatever you want. You could also do, for example:
setMarbleAttributes(jumpImpulse, 75);
Hope that helps. The marble attributes will be reset to the defaults automatically by the game when starting another level.