Field with unique and auto-increments values
You can achieve it yourself in your custom form submit, lets suppose your field name is  myfield ( machine name will be field_myfield and it is text) and your content type is news ( change them with your data) 
first in form alter you can hide it ( it you don't want user see it )
Get idea from my code 

function yourmodule_form_alter(&amp;$form, &amp;$form_state, $form_id) {
    if($form_id == 'news_node_form'){
        if($form['nid']['#value']){
          // if we are in adding new node hide that field and add custom submit handler
                hide('field_myfield');
                $form['#submit'][]='_my_autoinrement_submit_handler';
            }
    }
}



function _my_autoinrement_submit_handler($form, &amp;$form_state) {
$lastValue=0;
// search for the last value 
$query= db_select("field_data_field_myfield","mf") -&gt;fields("mf")
 -&gt;condition('bundle', 'news','=')
    -&gt;condition('status', 1)
    -&gt;orderBy('field_myfield_value', 'DESC')
     -&gt;range(0,1);
     $result = $query-&gt;execute()-&gt;fetchAll();
     if($result){
         //get last value entered before this
        $lastValue= current($result)-&gt;field_myfield_value;
     }
     // increment last value ( biggest one )
     $lastValue ++;
   //set it in node
    $form_state['values']["field_myfield"]['und'][0]['value']=$lastValue;

}