4

Is it possible to (and, if so, how do you) spawn in a villager which is incapable of restocking?

I'm going to make a guided Skyblock-like map, with the villager's trades representing different progression tasks (e.g. get 64 cobblestone); I want to make this in an entirely Vanilla way. I want to disable "grinding" for the rewards, however; they should be finite even if they require renewable resources.

(I actually do want, if possible, some custom trades to be gated behind level progression; this would make for an extra degree of freedom in the design; but that's not a hard requirement and is out of primary scope of this question.)

  • Can one program it to think that its job block must be a Dragon Egg or Barrier block (which it will never find, thus never claim, thus never restock)?
  • Can one create a Nitwit (villager unable to claim a job site) who has been, nevertheless, spawned in with some artificial trading ability?
  • If one simply assigns it a job block, which is encased in Barrier at y=0, can a crafty player nevertheless convince the villager to abandon it in favor of an accessible one?

Generally: is there any way to do this without mods?


This is related to, but not a duplicate of, “How do I prevent new villager trades from spawning?”.

  • That question concerns how to prevent villagers from unlocking new trades when the villager levels up
  • I am asking how to prevent them from restocking existing trades when they are exhausted
9
  • I am unable to check at the moment, but couldn't you just block their restock tables? – Matthew Wells Jan 25 at 1:56
  • @MatthewWells That was my idea #3, but as stated in the question I'm unsure whether or not it'd still possible to "coax" it into abandoning its inaccessible job site, leaving it open to claiming one it can restock at – JamesTheAwesomeDude Jan 25 at 2:07
  • In 1.15+ The villager without access to his workstation won't restock. – SF. Jan 25 at 10:53
  • 1
    This sort of setup - with barrier/bedrock instead of glass - would work providing the player doesn't have enderpearls and chorus fruit. The villager is separated from the workstation by a powered iron trapdoor. The player can reach the villager but not the trapdoor. Extra workstation will do nothing. But if the player can enderpearl in, they can destroy the trapdoor and let the villager access the workstation. – SF. Jan 26 at 0:25
  • 1
    I can also think of a couple other creative ways to break this setup, so it's far from 'decent' (break slab, use trapdoor to enter crawl mode - you'd need some sort of curved corridor instead. With enough redstone skill one could try to pull the trapdoor out using honey blocks or use potion of turtle master to protect the villager then blast the trapdoor with TNT. Generally - it's vulnerable. – SF. Jan 26 at 0:55
0

Basically, it can be done by adding {NoAI:1} tag to the villager, for example this command will summon a cartographer:

/summon villager ~ ~ ~ {VillagerData:{profession:"minecraft:cartographer",type:"minecraft:plains"},NoAI:1b}

One disadvantage of this method is that the villager will not move at all.

Also, the villager that is summoned that way doesn't need the job site to be placed near it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.