private void saveCurrentValues() {
		try {
		Mobile mobileTemplate = (Mobile) ((DefaultMutableTreeNode) mobilesTree.getSelectionPath().getLastPathComponent()).getUserObject();
		
		mobileTemplate.setCreatureName(tbCreatureName.getText());
		mobileTemplate.setScriptLocation(tbScriptLocation.getText());
		
		mobileTemplate.setLevel((int) tbCreatureLevel.getValue());
		mobileTemplate.setMinLevel(Integer.valueOf(tbMinLevel.getText()));
		mobileTemplate.setMaxLevel(Integer.valueOf(tbMaxLevel.getText()));
		mobileTemplate.setAttackRange(Integer.valueOf(tbAttackRange.getText()));
		mobileTemplate.setAttackSpeed(Float.valueOf(tbAttackSpeed.getText()));
		mobileTemplate.setAssistRange(Integer.valueOf(tbAssistRange.getText()));

		mobileTemplate.setDifficulty(cmbDifficulty.getSelectedIndex());
		mobileTemplate.setDefaultAttack((String) cmbDefaultAttack.getSelectedItem()); 
		mobileTemplate.setWeaponType(cmbWeaponType.getSelectedIndex());
		
		mobileTemplate.setSocialGroup(tbSocialGroup.getText());
		mobileTemplate.setFaction((String) cmbFaction.getSelectedItem());
		mobileTemplate.setFactionStatus(cmbFactionStatus.getSelectedIndex());
		mobileTemplate.setMinSpawnDistance(Integer.valueOf(tbMinSpawnDistance.getText()));
		mobileTemplate.setMaxSpawnDistance(Integer.valueOf(tbMaxSpawnDistance.getText()));
		
		mobileTemplate.setDeathblowEnabled(chckbxDeathblowEnabled.isSelected());
		mobileTemplate.setStalker(chckbxStalker.isSelected());
		mobileTemplate.setHarvestable(chckbxHarvestable.isSelected());
		
		if (creatureTemps.getSize() > 0) {
			Object[] objArray = creatureTemps.toArray();
			String[] stringArray = Arrays.copyOf(objArray, objArray.length, String[].class);
			Vector<String> creatureTemplates = new Vector<String>(Arrays.asList(stringArray));
			mobileTemplate.setCreatureTemplates(creatureTemplates);
		} else {
			mobileTemplate.setCreatureTemplates(new Vector<String>());
		}

		if (weaponTemps.size() > 0) {
			Object[] objArray = weaponTemps.toArray();
			String[] stringArray = Arrays.copyOf(objArray, objArray.length, String[].class);
			Vector<Weapon> updatedWeaponTemps = new Vector<Weapon>();
			
			for (String temp : stringArray) {
				String[] values = temp.replace(" ", "").split(",");
				updatedWeaponTemps.add(new Weapon(values[0], Integer.valueOf(values[1]), Float.valueOf(values[2])));
			}
			
			mobileTemplate.setWeaponTemplates(updatedWeaponTemps);
		} else {
			mobileTemplate.setWeaponTemplates(new Vector<Weapon>());
		}

		/*
		if (mobileTemplate.getAttacks().size() != 0)
			listAttacks.setListData(mobileTemplate.getAttacks());
		else
			listAttacks.setListData(new String[] { "Template has no attacks." });*/
		
		mobileTemplate.setDirty(true);
		
		if (!btnBuildCurrent.isEnabled())
			btnBuildCurrent.setEnabled(true);
		
		modifiedTemplates.add(mobileTemplate);
		
		if (modifiedTemplates.size() >= 2 && !btnBuildAll.isEnabled())
			btnBuildAll.setEnabled(true);
		
		mobilesTree.updateUI(); // Show Asterisk
		System.out.println("Saved values for Template: " + mobileTemplate.getCreatureName());
		} catch (Exception e) { Helpers.showExceptionError(frmPswgToolsMbs, e.getLocalizedMessage());}
		
	}