Default Plugin Settings Not Writing to Database

I believe the issue is that your function that sets up the settings initially isn’t getting run upon activation. Add a call to your mouldings_register_settings_initial() in the activation hook, like this:

function mouldings_activate() {
    global $wpdb, $mouldings_options;
    mouldings_register_settings_initial();
    if ($mouldings_options === false){
        $mouldings_options = array(
            'idea_item_columns' => '4'
        );
        update_option( 'mouldings_settings', $mouldings_options );
    }
}
register_activation_hook( MOULDINGS_PLUGIN_FILE, 'mouldings_activate' );