def METHOD_NAME(self, settings, node=None, group=False):
    """
    Saves the VPCS nodesettings.
    :param settings: the settings (dictionary)
    :param node: Node instance
    :param group: indicates the settings apply to a group of routers
    """
    # these settings cannot be shared by nodes and updated
    # in the node properties dialog.
    if not group:
        # set the node name
        name = self.uiNameLineEdit.text()
        if not name:
            QtWidgets.QMessageBox.critical(self, "Name", "VPCS node name cannot be empty!")
        else:
            settings["name"] = name
    if not node:
        default_name_format = self.uiDefaultNameFormatLineEdit.text().strip()
        if '{0}' not in default_name_format and '{id}' not in default_name_format:
            QtWidgets.QMessageBox.critical(self, "Default name format", "The default name format must contain at least {0} or {id}")
        else:
            settings["default_name_format"] = default_name_format
        symbol_path = self.uiSymbolLineEdit.text()
        settings["symbol"] = symbol_path
        settings["category"] = self.uiCategoryComboBox.itemData(self.uiCategoryComboBox.currentIndex())
        base_script_file = self.uiScriptFileEdit.text().strip()
        if not base_script_file:
            settings["base_script_file"] = ""
        elif base_script_file != settings["base_script_file"]:
            if self._configFileValid(base_script_file):
                settings["base_script_file"] = base_script_file
            else:
                QtWidgets.QMessageBox.critical(self, "Base script config file", "Cannot read the base script config file")
    # save console type
    settings["console_type"] = self.uiConsoleTypeComboBox.currentText().lower()
    settings["console_auto_start"] = self.uiConsoleAutoStartCheckBox.isChecked()
    return settings