Food morale stacking is an old problem. A single food item means nothing (+5 morale is nothing), a whole stack of those is like +15 which is less than music, but you can drink 10 different alcohols for +300 morale.
The stacking needs to be weaker. Bonus points if we also get non-stacked food morale to matter.
One thing that is NOT a solution is making the character bored of food for a long time (longer than one day). This would do nothing against stacking and only prevent the more natural bonus from “I ate a good meal today” effect.
I’m thinking something like penalizing multiple morale effects of the same sign:
Highest morale effect applied with no penalty, second one at 75% effect, third 50%, fourth 25% and the rest would be dropped. Or some other stepdown (square root? linear division?).
That way good meal, good drink and music would stack, but nibbling on 10 types of junk food wouldn’t.
Possible additions (not solutions on their own):
[ul][li]Could apply only to same morale categories: food would not stack well with food, books would not stack with books, but food+books would stack without penalties[/li]
[li]Dropping alcohol fun and turning most of it into fun from being drunk (rather than fun of drinking alcohol). Nice wines would still give the taste bonus, but washing down cheap fruit wine with moonshine wouldn’t help.[/li]
[li]Same as above for other drugs. In the category stacking system, all drugs would have a “chemical” category, so that heroin+alcohol wouldn’t stack perfectly[/li][/ul]
While you’re fixing that you may want to look at fixing spiritual as well, it’s possible to get +75 morale from EACH book and with a few books in hand it’s not difficult to get 300+ morale in short order, in a format that never expires, and only requires someplace lit and relatively safe to read. Maybe roll all of it into one “buff” that maxes out at 75-100 after reading four different books or something.