title: Move Edit Cursor # Based on Selection ## To end of all selected media ```lua local i local media_item, media_item_pos, media_item_len, media_item_end local current_pos local max_media_item_end = -1 current_pos = reaper.GetCursorPosition() for i = 0,1000 do -- assuming fewer than 1000 media items selected media_item = reaper.GetSelectedMediaItem(0,i) if type(media_item) == "nil" then break end media_item_pos = reaper.GetMediaItemInfo_Value(media_item,"D_POSITION") media_item_len = reaper.GetMediaItemInfo_Value(media_item,"D_LENGTH") media_item_end = media_item_pos + media_item_len if media_item_end > max_media_item_end then max_media_item_end = media_item_end end end if max_media_item_end >= 0.0 then reaper.SetEditCurPos(max_media_item_end,true,false) end ``` ## To next end of selected media ```lua local i local media_item, media_item_pos, media_item_len, media_item_end local current_pos local next_media_item_end = -1 current_pos = reaper.GetCursorPosition() for i = 0,1000 do -- assuming fewer than 1000 media items selected media_item = reaper.GetSelectedMediaItem(0,i) if type(media_item) == "nil" then break end media_item_pos = reaper.GetMediaItemInfo_Value(media_item,"D_POSITION") media_item_len = reaper.GetMediaItemInfo_Value(media_item,"D_LENGTH") media_item_end = media_item_pos + media_item_len if media_item_end > current_pos then if next_media_item_end < 0 then next_media_item_end = media_item_end else if next_media_item_end > media_item_end then next_media_item_end = media_item_end end end end end if next_media_item_end >= 0.0 then reaper.SetEditCurPos(next_media_item_end,true,false) end ```