I've not got a save function yet, but i've done an Export Function which exports the level as Darkbasic Code.
Function ExportDarkBasicCode()
s$ = "` This Level was Created Using DarkBasic World Creator, An Open Source Editor for DarkBasic Pro, by Michael Mihalyfi, (MSon), [email protected]"+CHR$(10)
s$ = s$+"` Export Date was "+Get Date$()+CHR$(10)
s$ = s$+"` ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"+CHR$(10)+CHR$(10)+CHR$(10)
s$ = s$+"GoSub LoadMap"+CHR$(10)+CHR$(10)
s$ = s$+"Do"+CHR$(10)
s$ = s$+"Control Camera Using ArrowKeys 0,1,1"+CHR$(10)
If SkySphereObject > 0 Then s$ = s$+"Position Object SkySphereObj,Camera Position X(0),Camera Position Y(0),Camera Position Z(0)"+Chr$(10)
s$ = s$+"Sync : Loop"+CHR$(10)+CHR$(10)+CHR$(10)
s$ = s$+"LoadMap: ` Loads a PreMade Level"+CHR$(10)
If BSPFile$ <> ""
s$ = s$+" ` Loading BSP Object ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"+CHR$(10)
s$ = s$+" Load BSP "+CHR$(34)+CHR$(34)+","+BSPFile$+CHR$(10)
EndIf
If SkySphereObject > 0
s$ = s$+" ` Loading SkySphere ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"+CHR$(10)
s$ = s$+" SkySphereObj = Find Free Object() : Make Object Sphere SkySphereObj,-1000"+CHR$(10)
s$ = s$+" SkySphereImg = Find Free Image() : Load Image "+SkySphereTexture$+",SkySphereImg,1"+CHR$(10)
s$ = s$+" Texture Object SkySphereObj,SkySphereImg"+CHR$(10)
EndIf
s$ = s$+" ` Loading Objects ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"+CHR$(10)
For n = 0 to Array Count(ObjectData())
If ObjectData(n).ObjNum > 0 : s$ = s$+" "+ObjectData(n).Name$+ " = Find Free Object()+"+CHR$(10)
If ObjectData(n).Type$ = "LOAD" : s$ = s$+" Load Object " +ObjectData(n).File$+","+ObjectData(n).Name$+CHR$(10) : EndIf
If ObjectData(n).Type$ = "PLAIN" : s$ = s$+" Make Object Plain "+ObjectData(n).Name$+","+STR$(Object Size X(ObjectData(n).ObjNum))+","+STR$(Object Size Y(ObjectData(n).ObjNum))+CHR$(10) : EndIf
If ObjectData(n).Type$ = "BOX" : s$ = s$+" Make Object Box " +ObjectData(n).Name$+","+STR$(Object Size X(ObjectData(n).ObjNum))+","+STR$(Object Size Y(ObjectData(n).ObjNum))+","+STR$(Object Size Z(ObjectData(n).ObjNum))+CHR$(10) : EndIf
If ObjectData(n).Texture > 0 : s$ = s$+" "+ObjectData(n).Name$+"Img = Find Free Image() : Load Image " +ObjectData(n).Texture$+","+ObjectData(n).Name$+"Img,1"+CHR$(10)
s$ = s$+" Texture Object "+ObjectData(n).Name$+","+ObjectData(n).Name$+"Img"+CHR$(10) : EndIf
s$ = s$+" Position Object "+ObjectData(n).Name$+","+STR$(Object Position X(ObjectData(n).ObjNum))+","+STR$(Object Position Y(ObjectData(n).ObjNum))+","+STR$(Object Position Z(ObjectData(n).ObjNum))+CHR$(10)
s$ = s$+" Rotate Object "+ObjectData(n).Name$+","+STR$(Object Angle X(ObjectData(n).ObjNum))+","+STR$(Object Angle Y(ObjectData(n).ObjNum))+","+STR$(Object Angle Z(ObjectData(n).ObjNum))+CHR$(10)
s$ = s$+" ` ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"+CHR$(10)
EndIf Next n
s$ = s$+" Return"+CHR$(10)+CHR$(10)+CHR$(10)
Win = CreateWindow(0,0,500,500,"Exported DarkBasic Code",0,0,1,0)
Edit = CreateRichEdit(0,0,400,400,Win)
SetGadgetText Edit,s$
EndFunction
Quite Useful, i've lso attached a screenshot below, and I need to say thanks to Newton for some quality models
Everyone Be Cool, You, Be Cool.