`object handler type object objectid as integer name$ as string x as float y as float z as float visible as integer endtype dim objects_on_screen(-1) as object do print_info() mouse_control() print_objects_to_screen() sync cls loop wait key end function add_object_to_screen(name$ as string,x as integer,y as integer, z as integer, visible as integer) `this function will add objects to the array, checking first or a new row is needed array_size = array count(objects_on_screen()) newsize = array_size + 1 objct_id = newsize + 1 array insert at bottom objects_on_screen() objects_on_screen(newsize).objectid=objct_id objects_on_screen(newsize).name$=name$ objects_on_screen(newsize).x=x objects_on_screen(newsize).y=y objects_on_screen(newsize).z=z objects_on_screen(newsize).visible=visible endfunction function add_object_test() name$ = "cube" x = rnd(400) y = rnd(400) z = rnd(400) visible = 1 add_object_to_screen(name$,x,y,z,visible) endfunction function remove_object_from_screen(id as integer) array delete element objects_on_screen(),id endfunction function print_objects_to_screen() array_size = array count(objects_on_screen()) for y=0 to array_size ` looping through the array make object cube objects_on_screen(y).objectid,30 position object objects_on_screen(y).objectid,objects_on_screen(y).x,objects_on_screen(y).y,objects_on_screen(y).z next y endfunction function print_info() print "total array rows: "+str$(array_size) array_size = array count(objects_on_screen()) for y=0 to array_size ` looping through the array print "ID: "+str$(objects_on_screen(y).objectid)+" name: "+objects_on_screen(y).name$+" x pos: "+str$(objects_on_screen(y).x)+" y pos: "+str$(objects_on_screen(y).y)+" z pos: "+str$(objects_on_screen(y).z) next y endfunction function mouse_control() array_size = array count(objects_on_screen()) obj_rem = rnd(array_size) if mouseclick() = 1 then add_object_test() if mouseclick() = 2 then remove_object_from_screen(obj_rem) wait 100 endfunction