What is the spell save DC for the spells gains via the dark gifts in Curse of Strahd?

In Curse of Strahd, in Amber Temple,

The descriptions of these dark gifts do not make any mention of a spell save DC, should the dark gift allow the casting of a spell. For a player who has a spellcasting class, I guess you can just use their class’s spell save DC (that’s what I ruled when this came up the other day, although if they had different spell save DCs if they were multiclassed, which one?), but for non-spellcasting classes, clearly they have no spell save DC from their class.

For some of these spells, clearly a spell save DC isn’t relevant, such as:

but for others, it is, such as:

but it doesn’t seem to mention anything about a spell save DC for these spells anywhere, either in each specific dark gift’s description nor in the general information about dark gifts in the sidebar on p. 191.

Am I missing something, or is there another way to determine what these spell save DCs should be?

3.5 – What happens when a non-cleric gains a domain?

I’m familiar with what happens when a non-cleric acquires a domain (spell-wise – they don’t get domain slots but can add the domain spell to their list and may only cast that spell 1/day). But what level do they count regarding domain abilities? EG:

For a total time per day of 1 round per cleric level you possess, you can act normally regardless of magical effects that impede movement as if you were affected by the spell freedom of movement. This effect occurs automatically as soon as it applies, lasts until it runs out or is no longer needed, and can operate multiple times per day (up to the total daily limit of rounds).

So, hypothetically let’s say a 12th level druid/wizard/whatever gains this domain (through a prestige class) how many rounds free movement do they get?

Thanks.

What happens when a creature under an effect gains immunity to that effect?

For my first example, let’s say that a creature has contracted Filth Fever, and subsequently gains immunity to disease. The source could be anything, a Periapt of Health, or perhaps they gained their third level of Paladin, granting them the Divine Health ability.

What happens to the disease?

  • Is the disease removed completely and instantly? (this seems highly abuseable)

  • Do they retain the disease, but its effects are suspended until they no longer benefit from the immunity, ie taking off the Periapt, or falling and losing their Paladin class features?

  • Do they continue to make saves against the disease, but without suffering the negatives of failed saves, until eventually they save against the disease and shake it off? (This one makes the most sense to me)

  • Do they continue to make saves against the disease and suffer its negative effects until they are cured?

Second example: Fear effects.

Lets say a Paladin and Antipaladin are in a throw-down. The Antipaladin uses intimidate to demoralize the Paladin, which, due to his Aura of Cowardice ability, allows him to succeed and makes the Paladin shaken for 4 rounds. The Paladin backs up to outside the aura, regaining his immunity, then walks back in. Is he still shaken, or is he fine now?

Does a Favored Soul really gains turn attempts if he chose the Glory domain from the dracolyte prestige class?

I think I figured a way to give more power to the Favored Soul class (Complete Divine, p. 6-10) that people shun so much and is weak compared to Clerics, not only do you gain a Domain this Way but I think you also gain Turn attempts, wich really boost that poor class.

With the Prestige Class Dracolyte (Draconomicon, p. 122-123) and choosing the Glory Domain (Good gets it, but Neutral characters must choose between Glory and Domination):

The Granted Power States (SRD):

Turn Undead with a +2 bonus on the turning check and +1d6 to the turning damage roll.

In the Draconomicon p.107 it states:

Granted Power: You can turn undead with a +2 bonus on the turning check and +1d6 on the turning damage roll.

In the SRD the wording suggests that it gives you turn undead, while the Draconomicon suggest that you can do it wich could seem ambiguous, note that the Glory domain is only tied to this class, and it is mentionned in the Prestige Domain section that you can indeed join this without having other domains (wich mean non clerics, and the prerequisites permits it too) so I guess it really gives you Turn attempts.

Nothing states you need to already have Turn attempts, it straightly gives you a more powerful version of it.

This might be because Favored souls were not introduced yet, but as Favored Soul is a weak class compared to Cleric, nothing from RAW says it does not work, yet it is reasonable to allow it I believe, what would you guys say about this? Even just a 1 level dip would make way more powerful but at the cost of two weak feats, so might as well continue the prestige class…

Sidenotes:

  • I’m using the new ability from Dead Levels II:

    Knowledge Specialty (Ex): At 1st level, a favored soul can choose whether to make Knowledge (arcana) or Knowledge (religion) a class skill. Once this choice is made, it cannot be reversed

    I chose Knowledge (religion) instead so I’m ok for Dracolyte.

  • The only restrictions is having 2nd-level divine spells,2 general feats and some skills… other classes such as druid or paladin could get into this prestige class as well if they meet the prerequisites.

Does Phantasmal Force end if the target gains truesight?

Context: If an Illusion wizard casts Phantasmal Force on themselves, can they use the Illusory Reality feature to make things only they can see real?

That question is about what happens when an illusionist wizard uses Illusory Reality to make a Phantasmal Force image into a real thing. The consensus was that this can’t be done, because someone under the effect of Phantasmal Force doesn’t know it’s an illusion. I’m thinking about a workaround for that.

Phantasmal Force, like many illusion spells, allows a creature who can see the illusion to examine it closely, making an Investigation check.

If the check succeeds, the target realizes that the phantasm is an illusion, and the spell ends.

So if the wizard were to inspect the image and discover that it’s an illusion, it goes poof. But consider truesight:

A monster with truesight can, out to a specific range, see in normal and magical darkness, see invisible creatures and objects, automatically detect visual illusions and succeed on saving throws against them…

(Now, if you have truesight then the spell can’t be cast on you in the first place. So assume that the illusionist casts Phantasmal Force first, and then her friend casts True Seeing on her.)

The question is: Does truesight (1) provide an alternate way to learn that the illusion isn’t real, or (2) cause you to successfully inspect the illusion without having to roll (and maybe without having to use an action)?

If (1), then our illusionist can cast Phantasmal Force and believe the illusion is real, then gain truesight and see that it’s not real, and then make it real.

If (2), then truesight will simply break the spell.

There’s also a possible (3): Even with truesight, the illusionist will be convinced that the illusion is real. Phantasmal Force has the unusual effect of making the target explain away any inconsistencies, so she might, for example, insist that her truesight doesn’t work right. I think this is unlikely (since truesight is described in pretty absolute terms) but maybe there’s an argument for it.

(Note that my play style doesn’t recognize RAW as a source of authority; I’m concerned with applying the rules in a way that tells a coherent story.)

Gains vs. Losses

I have a simple Google spreadsheet that Takes the estimated cost for a service provided and compares it to the actual cost of the service. the equation I have in the Q column is =K4-P4. When the estimated cost (column K) is less than the Actual cost (column P) I need a positive number in Column Q. And I need the reverse of that if K is greater than p. I’m new to spreadsheets and would appreciate any help. Thanks![enter image description here]1

When an injured character gains a level, how are hit points handled? [on hold]

I’m used to the party having healers, but I’m running a game right now where a character was injured brutally, down to 1 hit point and they made it to an Inn. They healed somewhat while resting and got into a fight which brought them up to the next level.

When do they get their new hit points? Immediately or after they finish healing the old damage?

AD&D

What if a revenant (monster) gains fire resistance?

As a GM, I use some revenants for my campaign. Those revenants all have class abilities and 2 are spell casters (an abjuration mage and alchemist artificer). The “problem” (it’s not a problem, but an “and what if they do that?”) is that they can use the Protection from Energy spell, so they can have fire resistance.

My question is: What happens if they gain fire resistance (or radiant resistance)? Do you think they lose their regeneration weakness (that doesn’t work when fire damage is dealt)?

2 player dice game, where even total gains points and odd total loses points NEA task computer science

This is a game for two users who roll 2 dice 5 times. If the total of dice is even the player gains 10 points if it is odd, they lose 5.

If there it is a draw after five rounds then the both users will have to roll one die to determine the winner.

from random import randint from time import sleep import time import sys import random import operator  total_score2 = 0 total_score1 = 0 rounds = 0 playerOnePoints = 0 playerTwoPoints = 0 print("*****************Welcome To The DICE Game*******************") print("Please enter 'n' if you are a new user and 'e' if you are a exsiting user and enter 's' to display scores") ens=input("") while ens != ("e") and ens != ("n") and ens != ("s"): # if anything else but these characters are entered it will loop until it is correct     print("Please enter 'n' if you are a new user and 'e' if you are a exsiting user and enter 's' to display scores")     ens = input() if ens == "s":     s = open("scores.txt","r")      file_content = s.read().splitlines()      users_points = {i.split()[0]: int(i.split()[2]) for i in file_content}     best_player = max(users_points.items(), key=operator.itemgetter(1))[0]     print("LeaderBoard: ")     print("\n")     print('player with maximum points is {}, this player has {} points'.format(best_player, users_points[best_player]))     best_players = sorted(users_points, key=users_points.get, reverse=True)     for bp in best_players:         print('{} has {} points'.format(bp, users_points[bp])) # This prints all players scores  if ens == "n":     username=input("Please enter appropiate username: ")     password1=input("Please enter password: ")     password2=input("Please re-enter password: ")     if password1 == password2: # checking if both passwords entered are the same         print("your account has been successfully been made Thankyou")         file = open("accountfile.txt","a")         file.write("username: ")         file.write(username)         file.write(" ")         file.write("password: ")         file.write(password2)         file.write("\n")         file.close()         print("Please enter 'n' if you are a new user and 'e' if you are a exsiting user")         ens=input(" ")     if password1 != password2: # if passwords entered are not the same will loop until they are correctly entered         correctPassword=(password1)         while True:             password=input('Enter password again ')             if password == correctPassword:                 print('Correct password has been entered')                 f = open ("accountfile.txt","a+")                 f.write("username: ")                 f.write(username)                 f.write(" ")                 f.write("password: ")                 f.write(correctPassword)                 f.write("\n")                 f.close()                 print("Please enter 'n' if you are a new user and 'e' if you are a exsiting user")                 en=input(" ")             print('Incorrect password ')  if ens == "e":     counter = 0     check_failed = True     while check_failed:         print("Could player 1 enter their username and password")         username1=input("Please enter your username ")         password=input("Please enter your password ")         with open("accountfile.txt","r") as username_finder:             for line in username_finder:                 if ("username: " + username1 + " password: " + password) == line.strip():                       print("you are logged in")                     check_failed = False                     counter = 0                     check_failed = True                     while check_failed:                         print("Could player 2 enter their username and password")                         username2=input("Please enter your username ")                         password=input("Please enter your password ")                         with open("accountfile.txt","r") as username_finder:                             for line in username_finder:                                 if ("username: " + username2 + " password: " + password) == line.strip():                                     print("you are logged in")                                     check_failed = False                                     time.sleep(1)                                     print("Welcome to the dice game")                                     time.sleep(1)                                     while rounds < 5:                                         total_score2 = total_score2 + playerTwoPoints                                         total_score1 = total_score1 + playerOnePoints                                         rounds = rounds + 1                                         number = random.randint(1,6)                                         number2 = random.randint(1,6)                                         playerOnePoints = number + number2                                         print("Round",rounds)                                         print("-------------------------------------------")                                         print("Player 1's turn    Type 'roll' to roll the dice")                                         userOneInput = input(">>> ")                                         if userOneInput == "roll":                                             time.sleep(1)                                             print("Player 1's first roll is", number)                                         print("Player 1's second roll    Type 'roll' to roll the dice")                                         userOneInput = input(">>> ")                                         if userOneInput == "roll":                                             time.sleep(1)                                             print("player 1's second roll is", number2)                                         if playerOnePoints <= 0:                                                 playerOnePoints = 0                                         if playerOnePoints % 2 == 0:                                             playerOnePoints = playerOnePoints + 10                                             print("Player 1's total is even so + 10 points")                                             print("-------------------------------------------")                                             print("Player 1 has",playerOnePoints, "points")                                         else:                                             playerOnePoints = playerOnePoints - 5                                             print("player 1's total is odd so -5 points")                                             print("-------------------------------------------")                                             print("Player 1 has",playerOnePoints, "points")                                             if playerOnePoints <= 0:                                                 playerOnePoints = 0                                         number = random.randint(1,6)                                         number2 = random.randint(1,6)                                         playerTwoPoints = number + number2                                         print("-------------------------------------------")                                         print("Player 2's turn    Type 'roll' to roll the dice")                                         userTwoInput = input(">>> ")                                         if userTwoInput == "roll":                                             time.sleep(1)                                             print("Player 2's first roll is", number)                                         print("Player 2's second roll    Type 'roll' to roll the dice")                                         userTwoInput = input(">>> ")                                         if userTwoInput == "roll":                                             time.sleep(1)                                             print("player 2's second roll is", number2)                                         if playerTwoPoints <= 0:                                                 playerTwoPoints = 0                                         if playerTwoPoints % 2 == 0:                                             playerTwoPoints = playerTwoPoints + 10                                             print("Player 2's total is even so + 10 points")                                             print("-------------------------------------------")                                             print("Player 2 has",playerTwoPoints, "points")                                         else:                                             playerTwoPoints = playerTwoPoints - 5                                             print("player 2's total is odd so -5 points")                                             print("-------------------------------------------")                                             print("Player 2 has",playerTwoPoints, "points")                                             print("-------------------------------------------")                                      print("Total score for player 1 is", total_score1)                                     print("-------------------------------------------")                                     print("Total score for player 2 is", total_score2)                                     print("-------------------------------------------")                                      if total_score1 > total_score2:                                         print("Player 1 Wins!")                                         file = open("scores.txt","a")                                         file.write(username1)                                         file.write(" has ")                                         file.write(str(total_score1))                                         file.write(" points")                                         file.write("\n")                                         file.close()                                         sys.exit()                                     if total_score2 > total_score1:                                         print("Player 2 Wins!")                                         file = open("scores.txt","a")                                         file.write(username2)                                         file.write(" has ")                                         file.write(str(total_score2))                                         file.write(" points")                                         file.write("\n")                                         file.close()                                         sys.exit()                                     if total_score1 == total_score2:                                         print("Its a draw!")                                         print("So both players will have to roll one more dice")                                         time.sleep(2)                                         print("-------------------------------------------")                                         print("Player 1's turn    Type 'roll' to roll the dice")                                         userOneInput = input(">>> ")                                         if userOneInput == "roll":                                             time.sleep(1)                                             print("Player 1's first roll is", number)                                         print("Player 1's second roll    Type 'roll' to roll the dice")                                         userOneInput = input(">>> ")                                         if userOneInput == "roll":                                             time.sleep(1)                                             print("player 1's second roll is", number2)                                         if playerOnePoints % 2 == 0:                                             playerOnePoints = playerOnePoints + 10                                             print("Player 1's total is even so + 10 points")                                             print("-------------------------------------------")                                             print("Player 1 has",playerOnePoints, "points")                                         else:                                             playerOnePoints = playerOnePoints - 5                                             print("player 1's total is odd so -5 points")                                             print("-------------------------------------------")                                             print("Player 1 has",playerOnePoints, "points")                                         number = random.randint(1,6)                                         number2 = random.randint(1,6)                                         playerTwoPoints = number + number2                                         print("-------------------------------------------")                                         print("Player 2's turn    Type 'roll' to roll the dice")                                         userTwoInput = input(">>> ")                                         if userTwoInput == "roll":                                             time.sleep(1)                                             print("Player 2's first roll is", number)                                         print("Player 2's second roll    Type 'roll' to roll the dice")                                         userTwoInput = input(">>> ")                                         if userTwoInput == "roll":                                             time.sleep(1)                                             print("player 2's second roll is", number2)                                         if playerTwoPoints % 2 == 0:                                             playerTwoPoints = playerTwoPoints + 10                                             print("Player 2's total is even so + 10 points")                                             print("-------------------------------------------")                                             print("Player 2 has",playerTwoPoints, "points")                                         else:                                             playerTwoPoints = playerTwoPoints - 5                                             print("player 2's total is odd so -5 points")                                             print("-------------------------------------------")                                             print("Player 2 has",playerTwoPoints, "points")                                             print("-------------------------------------------")                                         if total_score1 > total_score2:                                             print("Player 1 Wins!")                                             file = open("scores.txt","a")                                             file.write(username1)                                             file.write(" has ")                                             file.write(str(total_score1))                                             file.write(" points")                                             file.write("\n")                                             file.close()                                         if total_score2 > total_score1:                                             print("Player 2 Wins!")                                             file = open("scores.txt","a")                                             file.write(username2)                                             file.write(" has ")                                             file.write(str(total_score2))                                             file.write(" points")                                             file.write("\n")                                             file.close()                                             sys.exit()                             else:                                 print("Sorry, this username or password does not exist please try again")                                 counter = counter + 1                                 if counter == 3:                                     print("----------------------------------------------------")                                     print("You have been locked out please restart to try again")                                     sys.exit()              else:                 print("Sorry, this username or password does not exist please try again")                 counter = counter + 1                 if counter == 3:                     print("----------------------------------------------------")                     print("You have been locked out please restart to try again")                     sys.exit() 

This was a project that i have been doing in computer science which I have now finished if anyone has any suggestions on how I could make it better they will appreciated alot so please suggest how I can improve it. Also It would be very helpful to me if you could rewrite the parts of my code that need improving or are wrong step by step so I can understand it better

Thanks