If you have no free slots for weapons and you select an 'empty' weapon slot, the install option is greyed out, saying "Sorry, we only install or remove items as part of an upgrade purchase." even when it isn't true for the station (or CSC).

Seen in 1.8 alpha 1, not sure if it's in other versions.

saharasorry.jpg
saharasorry.jpg
nms 1 May 2017:

This is due to a bug in rpgCalcDockServiceInstallAction in RPGCode.xml. If you have any compatible devices, but none of them can be installed - for any reason(s) - it assumes that the service provider is upgrade install only. Removing the check (@ installItemStatus 'canInstall) would fix this, but would result in the action being enabled even when no items can be installed for other reasons. (Also, then there would probably be an easier way to check for the provider being upgrade only than checking if it's true for each item.) When there are no free slots, the description would say that, but that some items don't require one. The install screen would give the reasons specific items can't be installed. So overall, that would be better (and how it used to work, I think). But maybe there should be additional checks for other reasons devices can't be installed, like insufficient slots, inadequate tech, etc., though that would be complicated if different items have different reasons.

			(setq rpgCalcDockServiceInstallAction (lambda (dockObj shipObj options)
				(block (
					allItems
					)
					(switch
						(= dockObj shipObj)
							{
								visible: Nil
								}
								
						;	If we cannot install items, then we omit this option. We will show the
						;	proper error in Upgrade
						
						(not (objGetProperty dockObj 'installDeviceMaxLevel))
							{
								visible: Nil
								}
				
						;	If no items to install, action is disabled
					
						(not (setq allItems (objGetItems shipObj (@ options 'criteria))))
							{
								visible: True
								enabled: Nil
								desc: (scrTranslate gScreen "actionInstall:noItemInCargo" { category:(@ options 'category) })
								}
								
						;	If none of the items can be installed because of compatibility, then
						;	say so.
						
						(not (filter allItems theItemToInstall
								(!= (@ (objCanInstallItem shipObj theItemToInstall) 1) 'notCompatible)
								))
							{
								visible: True
								enabled: Nil
								desc: (or
										(objTranslate shipObj 'rpg.noCompatibleDeviceInCargo { category:(@ options 'category) })
										(scrTranslate gScreen "actionInstall:noCompatibleItemInCargo" { category:(@ options 'category) })
										)
								}
								
						;	If none of the items in our cargo hold can be installed because
						;	the station requires an upgrade (purchase) then we show an error.
					
						(not (filter allItems theItemToInstall
								(block (
									(installItemStatus (objGetItemProperty dockObj theItemToInstall 'installItemStatus))
									)
									(and (@ installItemStatus 'canInstall)
										(not (@ installItemStatus 'upgradeInstallOnly))
										)
									)
								))
							{
								visible: True
								enabled: Nil
								desc: (scrTranslate gScreen "actionInstall:upgradeInstallOnly" { category:(@ options 'category) })
								}
							
						{
							visible: True
							enabled: True
							desc: (or (objTranslate dockObj "dockServices:installAbility" { category:(@ options 'category) })
									(scrTranslate gScreen "actionInstall:defaultAbility" { category:(@ options 'category) dockObj:dockObj })
									)
							}
						)
					)
				))
george moromisato 27 Jun 2017:

Fixed in 1.8 Alpha 2. Thank you!