For simple stations that use the paramsutil and railstationconfigutil you don't have to do anything if TrackLib works.

For complex stations you have to make some changes and require that the mod TrackLib to be loaded.
TrackLib tries to change stations as they are loaded and modify them. If your stations work without a change, you can leave it as it is.

usually a complex station construction is like this:

...
function data()

return {
...
	params={
		makeAParam(),
		makeAnotherParam(),
		makeTrackTypeParam(),
		makeCatenaryParam()
	}
...
	updateFn= function(params)
		...
		result.edgeLists = {
			{
				type = "TRACK",
				params = {
					type = trackTypes[params.trackType+1],
					catenary = params.catenary == 1
				},
				edges = tracks,
				snapNodes = snaps
			}
		}
		...
	end
}



change it like this:



...
function data()
	local localparams={}
	localparams[#localparams+1]=makeAParam()
	localparams[#localparams+1]=makeAnotherParam()
	paramsutil.paramTrackType(localparams) -- this one is different that the others
--	paramsutil.paramTrackType(localparams,"trackType2","Secondary track type") -- alternate version to add another track type with keyname and name to pe displayed
	localparams[#localparams+1]=makeCatenaryParam()


return {
...
	params = localparams
...
	updateFn= function(params)
		...
		local selectedtracktype = paramsutil.getSelectedTrackType(params)
--		local selectedtracktype2 = paramsutil.getSelectedTrackType(params,"trackType2") -- get the other track type selection
		
		result.edgeLists = {
			{
				type = "TRACK",
				params = {
					type = selectedtracktype.filename,
					catenary = params.catenary == 1
				},
				edges = tracks,
				snapNodes = snaps
			}
		}
		...
	end
}

