Is there an official treasure generation method to limit magic item rolls based on dungeon level or some other factor?

I’m running an AD&D campaign for a party of usually-three PCs, who were first level until our most recent session. (As for what they are now, we’ll get to that…) I have the 1e DMG (door cover) and Unearthed Arcana, and a Monster Manual that might be older than that, judging by its condition. The players are using the 2e PHB; these are all inherited books, and the previous owner only ever DM’d in 1e and PC’d in 2e.

My issue is with treasure generation– I’ve been using the standard dungeon generation tables from the DMG, and it works well except for the outcome of treasure rolls. Specifically, magic items don’t seem to be segregated by dungeon level. That first-level party happened upon a Mirror of Mental Prowess, which had some fairly powerful effects but nothing game-breaking, and was worth five thousand experience. Divided among the party, this alone was enough to bring the priest and rogue to second level. Combined with the remainder of the treasure, those two reached level three, and the ranger reached level two.

Now building a dungeon for a later adventure, another magic item roll came up, resulting in… a Ring of Three Wishes. I simply vetoed that and re-rolled, getting something more reasonable this time, but now the question is in my mind of whether this is actually correct.

So, the simple version of the question:
Is there a method in AD&D to limit magic item rolls for treasure based on dungeon level or some other factor, or does this need to be created manually by the DM?

Note that this is not the same question as “What can I do when I accidentally gave out an overpowered item?” This relates purely to the RAW methods for generating magical treasures.

Does the Slow spell limit the number of Eldritch Blast beams?

This question comes from something stated in an answer to another one of my questions:

[Regarding eldritch blast] This spell allows you to make a single attack that targets multiple creatures, by making several attack rolls.

The slow spell states:

[…] Regardless of the creature’s abilities or magic items, it can’t make more than one melee or ranged attack during its turn […]

Note I am aware the slow spell also affects the casting of spells, so let’s assume a caster always succeeds on the d20 roll.

And then there is the eldritch blast spell which states:

A beam of crackling energy streaks toward a creature within range. Make a ranged spell attack against the target. On a hit, the target takes 1d10 force damage.

The spell creates more than one beam when you reach higher levels: two beams at 5th level, three beams at 11th level, and four beams at 17th level. You can direct the beams at the same target or at different ones. Make a separate attack roll for each beam.

Does the slow spell prevents you from creating more than one eldritch blast beam?

What is the lowest level at which a human can beat the 100m world record (or: the presumed human limit) without using magic?

Optimizing a character build for fast movement in order to break the sound barrier is a well-tried source of fun with numbers in DnD. Such speed optimizations usually incorporate lots of magic and possibly additional help by allies. But I’d like to learn more about what the human body is capable of within the rules of DnD, so I’m more interested in what can be achieved without magic.

A high level Monk with two levels in Fighter and the Mobile Feat can still become ridiculously fast. If I didn’t mess up the calculations, he can run 100m in about 7.52 seconds: Use Action Surge and Step of the Wind for triple dashing to run 84m in 6 seconds, then double dash in the next round for the remaining 16m. This is even almost 2 seconds faster than 9.4s, which scientists think is the human limit (in our world, that is). But hey, it’s a Level 20 character, so becoming somewhat superhuman does kind of make sense in the world of DnD, I guess.

This raises the question: At what point in the game can human adventurers become superhuman without using magic? This is of course a more vague and general question (one could ask the same e.g. in the context of lifting strength), but let’s stick to running speed for the moment. So, my question in precise terms is:

What is the minimum level at which a human character can run 100m in less than 9.58 (or: 9.4) seconds and thus break the current world record (or: become superhuman)?


  • No magic.
  • No epic boons.
  • No UA (but any official rule book).

Let’s use the same approach as above, i.e. Mobile Feat + k squares Unarmored Movement + Action Surge + Step of the Wind. Since a round is 6 seconds long and a square corresponds to 1,5m, this strategy lets you run 100m in

$ $ t(k)=6+\frac{100-(48+6k)}{6+\frac34 k}$ $

seconds. Plugging in the possible values of k yields

$ $ t(2)\approx 11.333, \quad t(3)\approx 10.121, \quad t(4)\approx 9.111, \quad t(5)\approx 8.256, \quad t(6)\approx 7.524.$ $

Hence, a Monk 9 / Figher 2 is still more than half a second away from beating the world record, while gaining another Monk Level already makes her superhuman at a total Character Level of 12. Did I miss something? Or can one even do better with an altogether different strategy?

PS: A quick comment on the tricky question about Ki being magic: Since Ki is only used for Step of the Wind, we could add two Rogue Levels and achieve the same by taking the Cunning Action instead. However, this would raise the current minimum level to 14.

Do PCs have a volumetric carry capacity limit?

In the Player Starting Guide (a summary of the PHB) it says that characters can carry an amount of Strength Value × 15 = weight limit in pounds. But later, in the gear section, there is a table about Container Capacity (usually cubic feets) of backpacks, chests, barrels, vials, etc, even about backpacks it says:

You can also strap items, such as a bedroll or a coil of rope, to the outside of a backpack.

So… are PCs limited by carry weight and by volume?

If that is true, how much initial volume can a character carry?

Is volume tracked per storage item or all as a whole (I mean, if I have an item which size 2 ft3 and two bags with 1 ft3 each one, can I carry that item or not?)?

SharePoint threshold limit Not working for indexed Columns

I am Facing A issue with SharePoint Rest Query Requestype Column is indexed , single Line of text , Has Three types of only (Values and Count)

  • Credit- 3787
  • One Off – 13019
  • Reccuring – 6202

I am Trying to retrieve only Credit type but it is failing and giving threshold error. I need to retrieve all credit requests Query :‘XYZ’)/Items?$ select=ID&$ filter= ( RequestType eq ‘Credit’ )

Thanks For helping me solve the issue.

Script not working inside of folder possible 5000 item limit issue

I asked a question about a month ago here Script Inside of Folder, and recieved a great answer from Rothrock. This worked for about a month until the document library exceeded 5000 items (or at least I believe this was the trigger that caused the script to stop working).

My hypothesis is that the query

caml += "<View Scope=\"RecursiveAll\">"; 

is unable to execute correctly because of the 5000 item limitation.

I think that the query needs to be modified such that it looks solely at the folder within which the file is being uploaded.

I’ve looked around for ways for this query to be modified, I found a thread that seems to confirm my thinking that this is the root issue. However I am not versed enough in Javascript to know how to fix the issue in question.

The modified script per the original suggestion is at the bottom of the page. If I change the script back to

caml += "<View>"; 

it will again execute properly at the Document Library level, but it still fails within a folder.

Thanks for any help or guidance!

<script type="text/javascript"> (function (_window) {     var maxTimeForReplaceUploadProgressFunc = 10000;     function replaceUploadProgressFunc() {         if (typeof _window.UploadProgressFunc != 'undefined') {             _window.Base_UploadProgressFunc = _window.UploadProgressFunc;             _window.UploadProgressFunc = Custom_UploadProgressFunc;             console.log('replaced dialog');         } else if (maxTimeForReplaceUploadProgressFunc > 0) {             maxTimeForReplaceUploadProgressFunc -= 100;             setTimeout(replaceUploadProgressFunc, 100);         }     }     setTimeout(replaceUploadProgressFunc, 100);       function Custom_UploadProgressFunc(percentDone, timeElapsed, state) {         _window.Base_UploadProgressFunc(percentDone, timeElapsed, state);         var messageType = ProgressMessage.EMPTY;         switch (state.status) {             case 1:                 messageType = ProgressMessage.VALIDATION;                 break;             case 3:                 messageType = ProgressMessage.UPLOADING;                 break;             case 4:                 messageType = ProgressMessage.UPLOADED;                 OpenEditFormForLastItem(state);                 break;             case 5:                 messageType = ProgressMessage.CANCELLED;                 break;         }          function OpenEditFormForLastItem(state) {             var caml = '';             caml += "<View Scope=\"RecursiveAll\">";             caml += "<Query>";             caml += "<Where>";              if (state.files.length > 1) {                 caml += "<In>";                 caml += "<FieldRef Name='FileLeafRef'/>";                 caml += "<Values>";             } else {                 caml += "<Eq>";                 caml += "<FieldRef Name='FileLeafRef'/>";             }              state.files.forEach(function (file) {                 //only succesfull uploaded files that arent overwrites                 console.log(file);                 if (file.status === 5 /*&& !file.overwrite*/) {                     caml += "<Value Type='File'>" + file.fileName + "</Value>";                 }             }, this);              if (state.files.length > 1) {                 caml += "</Values>";                 caml += "</In>";             } else {                 caml += "</Eq>";             }              caml += "</Where>";             caml += "<OrderBy><FieldRef Name='ID' Ascending='True' /></OrderBy>";             caml += "</Query>";             caml += "<ViewFields><FieldRef Name='ID' /></ViewFields>";             caml += "<RowLimit>500</RowLimit>";             caml += "</View>";             console.log(caml);              var cntxt = SP.ClientContext.get_current();             var web = cntxt.get_web();             var list = web.get_lists().getByTitle(window.ctx.ListTitle);             var query = new SP.CamlQuery();             query.set_viewXml(caml);             var items = list.getItems(query);             cntxt.load(list, 'DefaultEditFormUrl');             cntxt.load(items);             cntxt.executeQueryAsync(function () {                 var listEnumerator = items.getEnumerator();                 function openEditForItem() {                     if (listEnumerator.moveNext()) {                         var item = listEnumerator.get_current();                         var id = item.get_id();                          var options = SP.UI.$  create_DialogOptions();                         options.title = "Add File Metadata";                         options.url = list.get_defaultEditFormUrl() + '?ID=' + id;                         options.autoSize = true;                         options.dialogReturnValueCallback = openEditForItem;                         SP.UI.ModalDialog.showModalDialog(options);                     } else {                         location.reload();                     }                 }                 openEditForItem();             }, function (error, args) {                     console.log("failed to get new uploaded items");                     console.log(error);                     console.log(args);                 });         }     } })(window); </script>