Regarding costs, our suggestion is that everyone pays their own way.
How to get there from Zurich:
Departure Zurich at 09:04 with train IR2319 from track 3
Change in Lucerne at 10:07 to train S5 21540 from track 13
We will meet in Alpnachstad at 10:30 to catch the mountain railway to Pilatus Kulm at 10:50.
Departure from Basel is at 08:27 with train EC 131 from track 6
Change in Olten at 09:06 to train RE 3565 from track 10
Change again in Lucerne at 10:07 to train S5 21540 from track 13