Can a Symbol spell affect the same creature more than once?

The Symbol spell says:

Once triggered, the glyph glows, filling a 60-foot-radius sphere with dim light for 10 minutes, after which time the spell ends. Each creature in the sphere when the glyph activates is targeted by its effect, as is a creature that enters the sphere for the first time on a turn or ends its turn there.

Many of the options for what effect the symbol has when triggered have durations much shorter than 10 minutes (e.g. Stunning), or are instantaneous effects (e.g. Death). If I choose one of these effects, does that mean that it can affect the same creature multiple times? For instance, if I choose Stunning and a creature is stunned for one minute, then, assuming no one else moves them, they will still be within range of the spell at the end of that minute, and the spell will still be active for 9 more minutes. Does this mean that as soon as they recover from being stunned, they have to make the saving throw again? For that matter, does a stunned creature have to continue making saving throws every turn to see if the duration of the stun gets reset to 1 minute? Also, if they make the first save but cannot leave the area on that turn, do they have to make another saving throw on the following turn, or does the first save mean that they resist the effect of the spell entirely?

Similarly, if I choose the Death effect, do creatures in the area take the 10d10 necrotic damage every single turn until they leave the area?

Obviously, the answer to this question has a significant bearing on how powerful the spell is, especially if combined with other traps that limit creatures’ mobility.

How does the 7th-level spell Symbol work?

I have a couple of questions about the Symbol spell (PHB p. 280).

First, can the Death version of Symbol cause damage twice within the same round? From the wording it seems like it could trigger twice: once when triggered, and another time at the end of the turn.

Once triggered, the glyph glows, filling a 60-foot-radius sphere with dim light for 10 minutes, after which time the spell ends. Each creature in the sphere when the glyph activates is targeted by its effect, as is a creature that enters the sphere for the first time on a turn or ends its turn there.

Death. Each target must make a Constitution saving throw, taking 10d 10 necrotic damage on a failed save, or half as much damage on a successful save.

The second question is whether you can cast Symbol multiple times in the same location with alternative effects, such as Pain and Stunning.

Pain. Each target must make a Constitution saving throw and becomes incapacitated with excruciating pain for 1 minute on a failed save.

Stunning. Each target must make a Wisdom saving throw and becomes stunned for 1 minute on a failed save.

I know this would be a very expensive endeavour because of the Materials cost, but just wanted to know if it’s possible to use Symbol in this way to set a rather nasty trap.

Understanding PDA for odd length string with middle symbol 0

I came across this pdf, which describes the language of odd length string with middle symbol 0 as follows:

enter image description here


  1. I dont understand the transition labels. In standard resources like books by Ullman et al, Linz and in wikipedia, the transition labels take following form:

    • $ a,b/ab$ means if next input symbol is $ a$ and current stack top is $ b$ , then push $ a$ on $ b$
    • $ a,b/\epsilon$ means if next input symbol is $ a$ and current stack top is $ b$ , then pop $ b$
    • $ a,b/a$ means if next input symbol is $ a$ and current stack top is $ b$ , then pop $ b$ and push $ a$

    I dont get meaning of transition labels in diagram $ a,b\rightarrow c$ . Some one explained me that its, if next next input symbol is $ a$ , pop $ b$ and push $ c$ . I feel, if this interpretation is correct, then this notation is insufficient as it will describe both $ a,b/ab$ and $ a,c/ac$ as $ a,\epsilon\rightarrow a$ . Am I right with this, or I understood the notation incorrectly?

  2. Assuming above interpretation to be correct, loop on $ q_1$ pushes all input symbols, be it 1 or 0. Then for $ 0$ at any position (not necessarily middle position), it transits to $ q_2$ . Loop at $ q_2$ pops all symbols. I dont get how above PDA forces middle symbol to be $ 0$ . Also I dont get how it ensures length of $ w$ is odd.

  3. If given PDA is incorrect, can we prepare correct one by re-labelling as follows:

    • Loop at $ q_0$ : $ \{(1,$ /1);(0,$ /1);(0,0/00);(0,1/01);(1,0/10);(0,1/01)\}$
    • Transition $ q_0-q_1$ : $ \{(0,0/0);(0,1/1)\}$
    • Loop at $ q_2$ : $ \{(0,0/\epsilon);(0,1/\epsilon);(1,0/\epsilon);(1,1/\epsilon)\}$

    So, its CFL not deterministic CFL, right?

Can a Sentinel Shield Be Painted With A Cleric’s Holy Symbol?

In a campaign I’m DM’ing, I’m planning to leave out some good loot for the players next week to reward them for completing the first part of the campaign. I want some of the loot to also be helpful to them with a difficult challenge in the next part of the campaign.

One of the players is a Life Cleric.

I’m thinking about giving the party a Sentinel Shield.

Since the Life Cleric is the only one in their party who can wield a shield, the party will almost definitely give the Sentinel Shield to the Life Cleric.

Honestly, the cleric is the main reason I’m thinking of giving it to them, though I recognize that they can do whatever they want to with it.

Here’s the question I expect will come up right away.

The cleric picked up the War Caster feat as soon as he could and then he had his holy symbol painted on his starter shield. The Sentinel Shield is described as having an “eye” emblazoned on it. I assume the eye represents the watchful alertness provided by the shield that results in the advantage on Initiative rolls and Perception checks that result when the shield is equipped.

Can the cleric paint his holy symbol on the Sentinel Shield?

On the one hand, it’s magical and maybe it can’t be easily defaced with paint, particularly not if the eye on a Sentinel Shield is what’s being painted over.

On the other hand, a divine holy symbol would be what’s being painted on the shield.

I suspect they’ll assume it’s doable.

If it is doable, will defacing the eye with a divine symbol damage the watchful alertness provided to the user of the shield?

Maybe the cleric can paint his symbol on the non-Eye side, but isn’t that side still magical so that it can’t be easily defaced?

What exactly are you getting when you buy an Emblem Holy Symbol?

The description for the Emblem Holy Symbol is as follows (PHB, p. 151):

Holy Symbol. A holy symbol is a representation of a god or pantheon. It might an amulet depicting a symbol representing a deity, the same symbol carefully engraved or inlaid as an emblem on a shield, or a tiny box holding a fragment of a sacred relic. Appendix B lists the symbols commonly associated with many gods in the multiverse.

It weighs nothing and costs 5gp. The fact that it weighs nothing makes sense because it isn’t really an object that can exist by itself; it is an engraving or inlay on a shield.

So my question is, if you walk into a shop and “buy” an emblem (it costs 5gp, so it must be possible to purchase it), what exactly are you buying?

  • Are you buying some kind of “official pattern” that is required for a shield to count as having a proper “holy symbol” (as in, satisfies the material components for spellcasting) emblem on it? Almost like a “patented pattern”? Then why couldn’t you just buy one and replicate it yourself for free forevermore after that initial purchase?

  • Are you buying the “manual labour” to actually engrave/inlay the thing onto your shield? Then would it make sense that this can only be purchased from a blacksmith rather than from the local temple (where one might expect the other holy symbols, amulet or reliquary, to be purchased)? And could someone with Smith’s Tools (and proficiency with them) not do it themselves for free?

  • Are you effectively buying a shield that has already been made with that engraving/inlay “officially done”, so you’re basically buying a shield for 15gp (or a 5gp markup on whatever shield you’re buying), and you can’t actually buy just the emblem by itself for 5gp?

What I’m really getting at here, if I use my real example, is that in a game I am DMing, the party’s paladin (who has a shield with an emblem on it as per starting equipment) has raised concerns about having to buy a new holy symbol if they get a +1 shield in the future. This is unlike any other holy symbol, which you simply have forever (assuming you don’t lose or destroy it), since it is it’s own distinct object, so the emblem is a unique case here.

Just following the rules of what is required for a shield to satisfy the material components for spellcasting, I would say that they could just “buy” a new emblem and apply it to their new shield. But that got me thinking, what exactly would the paladin be buying at that point, and would it be possible to simply transfer the symbol over from their old shield to the new shield at no cost? This is a unique case, as for the other holy symbols, replacing some other piece of equipment would not impact them like this.

So, what exactly is an Emblem with regards to what a PC would be buying in-universe?

Note that I’m not looking for opinions, and if the answer is simply “this is not explained anywhere, as DM you have to decide what this means”, then that’s the answer.

Is it decidable “Given a TM M, whether M ever writes a non blank symbol when started on the empty tape.”

I came across below problem in this pdf:

Given a TM M, whether M ever writes a non blank symbol when started on the empty tape.

Solution given is as follows:

Let the machine only writes blank symbol. Then its number of configurations in the com computation on w is q × 2, where q is the number of states of M; the factor 2 is for the choices re. the direction of heads movement; there is no factor for the written symbol because that is always blank. So the problem is decidable, decided by the following machine: input (M,w), run M on w for q × 2 steps; if it M ever writes a non blank symbol, stop with yes answer; if M never writes a non blank symbol, stop with no answer


Q1. How be sure all q x 2 configurations will happen while running q x 2 steps on w? Some configuration may get repeated in q x 2 steps.

Q2. Question says “when started on the empty state”, but the answer tried to simulate TM on non empty string w. How does it makes sense?

Symbol for current, ongoing event

In my app I need to display an icon for an event which is currently ongoing. It’s a forecast app for forecasters, where they can issue a forecast in certain time window (event). I’m currently using a plane icon from fontawesome, but I’m not sure at all if it’s the best match for that, especially because my app has nothing to do with flights: enter image description here

I would like something more general, but I have no idea what could symbolize an ongoing event.

What symbol can be used to denote “contains”

Our UI has a table of data, with the first row containing input fields in each column for searching based off the data in that column. We want to add a dropdown that determines how that search text is used. We want to be able to do the following comparisons:

  1. Greater than (only retain rows that have values greater than the value specified)
  2. Less than (only retain rows that have values less than the value specified)
  3. Equals (only retain rows that have values equal to the value specified)
  4. Contains (only retain rows that have values that contain the value specified. For example, if the search text was “ee”, the values “beet”, “eel”, and “fee” would match, but “beat” would not))

Space is at a premium, so ideally, each value in the dropdown would be one character. For the 1st three above, we would use “>”, “<“, and “=”. However, I’m not sure what character could be used for “contains.” Ideally, it would be a single character, but I could live with 2 or maybe even 3 characters. I just don’t want to have use the word “contains”. Is there any symbol that a user would intuitively recognize as meaning “contains”?

Also, we’re considering being able to do a “starts with” and “ends with” search, so, if there are symbols that would tie in these 2 with the “contains” search, that would be of great help.

I should also note that the users probably won’t know more than basic mathematical symbols. I’m hesitant to use some of the symbols mentioned in the current answers (, ), because I’m not sure many users would recognize what they mean.

Error cannot find symbol

Tengo la clase Persona y la Formulario y la persona tiene usuario password edad y telefono y me encuentro en el main error cannot find symbol cuando intento settear los valores.

public class Persona implements Serializable {      private String usuario;     private String password;     private int edad;     private int telefono;     private static final long serialVersionUID = 2L;      public Persona() {         this.usuario = "";         this.password = "";         setEdad(edad);         setTelefono(telefono);     }      public Persona(String usuario, String password, int edad, int telefono) {         this.usuario = usuario;         this.password = password;         this.edad = edad;         this.telefono = telefono;     }      public String getUsuario() {         return usuario;     }      public void setUsuario(String usuario) {         this.usuario = usuario;     }      public String getPassword() {         return password;     }      public void setPassword(String password) {         this.password = password;     }      public int getEdad() {         return edad;     }      public void setEdad(int edad) {         if (this.edad < 110) {             this.edad = edad;         }     }      public int getTelefono() {         return telefono;     }      public void setTelefono(int telefono) {         if (Integer.toString(telefono).length() == 9) {             this.telefono = telefono;         }     }      @Override     public String toString() {         String mensaje = "Datos de la persona: " + "\n" + usuario + " #" + password + " #" + edad + " #" + telefono + "\n";         return mensaje;     }  } 

Como veis están todas las variables, ahroa os pongo el main

public class Tarea1SF {      /**      * @param args the command line arguments      */     public static void main(String[] args) {         File miFichero = new File("c:\lista.dat");         Formulario f = null;         if (!miFichero.exists()) {             f = new Formulario();         } else {             f = deserializa();         }         Scanner entrada = new Scanner(;         boolean salir = false;         int opcion; // Guardaremos la opcion del usuario          while (!salir) {             System.out.println("*********************************************");             System.out.println("1. Anadir un nuevo usuario");             System.out.println("2.Listar usuarios");             System.out.println("0. Salir");             System.out.println("*********************************************");             System.out.println("Elija una de las opciones");              opcion = Integer.parseInt(entrada.nextLine());              switch (opcion) {                 /*                  solo introducimos los datos que no forman parte de la reparacion                  */                 case 1:                     Persona p = new Persona();                     System.out.println("Introduzca el nombre de usuario: ");                     p.setUsuario(usuario);                     System.out.println("Introduzca la password: ");                     p.setPassword(password);                     System.out.println("Introduzca la edad: ");                     p.setEdad(edad);                     System.out.println("Introduzca el telefono: ");                     p.setTelefono(telefono);                     f.aniadirPersona(p);                     System.out.println("\nPresiona Intro para continuar....");                     entrada.nextLine();                     break;                 case 2:                     System.out.println(f.toString());                     System.out.println("\nPresiona Intro para continuar....");                     entrada.nextLine();                     break;                 case 8:                     salir = true;                     serializa(f);                     entrada.close();                     break;             }          }     }      private static void serializa(Formulario f) {         FileOutputStream miFos = null;         ObjectOutputStream miOos = null;         try {             String miFichero = "PilaDePartes.dat";              miFos = new FileOutputStream(miFichero);             miOos = new ObjectOutputStream(miFos);             miOos.writeObject(f);             miOos.close();             miFos.close();          } catch (Exception ex) {             Logger.getLogger(Tarea1SF.class                     .getName()).log(Level.SEVERE, null, ex);         } finally {             try {                 miFos.close();              } catch (IOException ex) {                 Logger.getLogger(Tarea1SF.class                         .getName()).log(Level.SEVERE, null, ex);             }             try {                 miOos.close();              } catch (IOException ex) {                 Logger.getLogger(Tarea1SF.class                         .getName()).log(Level.SEVERE, null, ex);             }         }     }      //Deserializamos el Objeto ArrayList desde un fichero     private static Formulario deserializa() {         FileInputStream miFis = null;         ObjectInputStream miOis = null;         Formulario f = null;         try {             String miFichero = "PilaDePartes.dat";             miFis = new FileInputStream(miFichero);             miOis = new ObjectInputStream(miFis);             boolean seguir = true;             while (seguir) {                 try {                     f = (Formulario) miOis.readObject();                  } catch (ClassNotFoundException ex) {                     Logger.getLogger(Tarea1SF.class                             .getName()).log(Level.SEVERE, null, ex);                 } catch (EOFException endOfFileException) {                     seguir = false;                  } catch (IOException ex) {                     Logger.getLogger(Tarea1SF.class                             .getName()).log(Level.SEVERE, null, ex);                 }             }             miOis.close();             miFis.close();          } catch (IOException ex) {             Logger.getLogger(Tarea1SF.class                     .getName()).log(Level.SEVERE, null, ex);         } finally {             try {                 miFis.close();              } catch (IOException ex) {                 Logger.getLogger(Tarea1SF.class                         .getName()).log(Level.SEVERE, null, ex);             }             try {                 miOis.close();              } catch (IOException ex) {                 Logger.getLogger(Tarea1SF.class                         .getName()).log(Level.SEVERE, null, ex);             }         }         return f;     }