Just to add some technical info about the current implementation of tadpoling...
This is the Osiris procedure that runs when you long rest:
PROC
PROC_LongRest()
AND
DB_GLO_Tadpoled_UsedTracker(_Var1, _Var1, _Var1, _Var1, _Var1)
THEN
NOT DB_GLO_Tadpoled_UsedTracker(_Var1);
ClearFlag(GLO_Tadpoled_UsedToday1_36d218ea-3eab-481f-fdaa-4ee185e76c25, _Var1, 0);
ClearFlag(GLO_Tadpoled_UsedToday2_b9d51e70-8963-e27f-a1fe-db5b9cfb3b1d, _Var1, 0);
When the
GLO_Tadpoled_UsedToday1 flag is set, corruption increases and the user is added to the
DB_GLO_Tadpoled_UsedTracker table and the
GLO_Tadpoled_PartyUsed flag is set. The setting of that flag triggers quest updates and is a requirement for dreams to occur.
When the
GLO_Tadpoled_UsedToday2 flag is set, the user is just added to the
DB_GLO_Tadpoled_UsedTracker table.
Both flags are set and checked in dialogs. In terms of implementation, there isn't much to the use and restriction of Illithid powers in dialog.
I've already written a script that - once we're able to recompile the story - would allow infinite tadpoling, but that's not an ideal solution.