Can you do anything after moving into an occupied space?

This is inspired by and is a branching off of the question “Move into nonhostile space attack and move”


The section on “Moving Around Other Creatures” states:

[…] Whether a creature is a friend or an enemy, you can’t willingly end your move in its space […]

The is also the following unofficial ruling (tweet) from lead game designer Jeremy Crawford:

Q. Can a character move into a space occupied by their ally, make an attack from that space, and then move away?

A. You can’t willingly stop moving in another creature’s space.

Both the question mentioned at the beginning and the Crawford quote explain that you cannot move into an occupied space, make an attack, and move away; however, perhaps there are other things you could do instead? Basically, what counts as “ending your move”?

Can you do any of the following after moving into an occupied space but before leaving it?

  • Take any sort of action
  • Take any sort of bonus action
  • Take any sort of reaction
  • Do something that requires no action whatsoever, such as talking, or dropping concentration

Why it’s never switching cameras and not moving back to the original position the transform?

using System; using System.Collections; using System.Collections.Generic; using UnityEngine;  public class OpenningScene : MonoBehaviour {     [Header("Animators")]     public Animator[] animators;      [Space(5)]     [Header("Movement Settings")]     public Transform target;     public float movingSpeed = 1f;     public bool slowDown = false;      [Space(5)]     [Header("Rotation Settings")]     public float rotationSpeed;     public DepthOfField dephOfField;     public float waitingAnimation;     public float startConversation;      [Space(5)]     [Header("Cameras")]     public Camera[] cameras;      private Vector3 targetCenter;     private bool startWaitingAnim = true;     private bool endRot = false;     private int medea_m_arrebola_index;     private List<int> soldiers_indexs;     private Vector3 originalPosition;      // Use this for initialization     void Start()     {         originalPosition = transform.position;          targetCenter = target.GetComponent<Renderer>().bounds.center;         soldiers_indexs = new List<int>();          for (int i = 0; i < animators.Length; i++)         {             animators[i].SetFloat("Walking Speed", movingSpeed);              if(animators[i].name == "medea_m_arrebola")             {                 medea_m_arrebola_index = i;             }             else             {                 soldiers_indexs.Add(i);             }         }     }      // Update is called once per frame     void Update()     {         if (dephOfField.dephOfFieldFinished == true)         {             PlayConversations.PlaySingleConversation(0);             dephOfField.dephOfFieldFinished = false;         }          float distanceFromTarget = Vector3.Distance(animators[medea_m_arrebola_index].transform.position, target.position);          if (slowDown)         {             if (distanceFromTarget < 10)             {                 float speed = (distanceFromTarget / 10);                 for (int i = 0; i < animators.Length; i++)                 {                     animators[i].SetFloat("Walking Speed", speed);                 }             }         }          if (distanceFromTarget < 5f)         {             for (int i = 0; i < animators.Length; i++)             {                 animators[i].SetBool("Idle", true);                  if (startWaitingAnim == true)                 {                     StartCoroutine(WaitForAnimation());                     startWaitingAnim = false;                 }             }              if (waitinganimation == true)             {                 animators[medea_m_arrebola_index].SetBool("Magic Pack", true);                 waitinganimation = false;                  PlayConversations.PlaySingleConversation(1);             }              if(distanceFromTarget > 10 && BeginningCutsceneTrigger.entered == true)             {                 transform.position = originalPosition;                 cameras[0].enabled = false;                 cameras[1].enabled = true;             }              for (int i = 0; i < soldiers_indexs.Count; i++)             {                 animators[soldiers_indexs[i]].SetBool("Rifle Aiming Idle", true);                 if (!endRot)                 {                     Quaternion goalRotation = Quaternion.Euler(0f, 0f, 0f);                     float angleToGoal = Quaternion.Angle(                             goalRotation,                             animators[soldiers_indexs[i]].transform.localRotation);                     float angleThisFrame = Mathf.Min(angleToGoal, rotationSpeed * Time.deltaTime);                      int index = soldiers_indexs[i];                     animators[index].transform.Rotate(index % 2 == 0 ? Vector3.up : Vector3.down, angleThisFrame);                      // We end if we rotated the remaining amount.                     endRot = (angleThisFrame == angleToGoal);                 }             }         }     }      bool waitinganimation = false;     IEnumerator WaitForAnimation()     {         yield return new WaitForSeconds(waitingAnimation);          waitinganimation = true;     } } 

Maybe the reason is that the player is not in the view range of the other characters ? If I set it to be bigger then 3 it will switch the cameras but not move the transform to it’s original position.

And I want that when the distance is bigger then 10 and the other flag is true then change the transform position and switch the cameras but it’s not working.

This is how I trigger the flag and it’s working I checked with a break point :

using System.Collections; using System.Collections.Generic; using UnityEngine;  public class BeginningCutsceneTrigger : MonoBehaviour {     public static bool entered = false;      private void OnTriggerEnter(Collider other)     {         entered = true;     } } 

Moving Document Library to a subsite in SharePoint

Currently, we have Document Libraries created in SharePoint Online and would like to move them using Powershell to its own Subsite. The reason we would like to move them is that we would like to keep the version history. Since we are dealing with 1000s of files, I would like to use Powershell to complete this task.

I am currently connecting to my SharePoint site using:

Connect-PnPOnline -Url “Sitename” -UseWebLogin

Here is where I need assistance. I am trying to use Move-PnPFolder but I am not sure how to write a command that would define the source, destination, and move of all files in the document library to a subsite that I have manually created.

Help please?

SharePoint 2019: Moving documents between Site Collections

I’m currently looking for a sneaky solution to move documents between SIte Collections. I already found a quite good looking PnP Powershell:

Connect-PnPOnline -Url https://intranet.customer.com/websites/SITECOLL1 Get-PnPList Get-PnPFeature -Scope Site $  allDocs = (Get-PnPListItem -List Checklisten).FieldValues $  targetLib = "https://intranet.customer.com/sites/SITECOLL2/Checklisten" foreach ($  item in $  allDocs){ Move-PnPFile -ServerRelativeUrl $  item.FileRef -TargetUrl ($  targetLib + $  item.FileLeafRef) -Force } 

But unfortunately I get for every document an error message like this:

Move-PnPFile : SiteId mismatch In C:\Temp\Powershell19\MoveDocuments.ps1:9 Zeichen:5 + Move-PnPFile -ServerRelativeUrl $ item.FileRef -TargetUrl ($ target … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : WriteError: (:) [Move-PnPFile], ServerException + FullyQualifiedErrorId EXCEPTION,SharePointPnP.PowerShell.Commands.Files.MoveFile

We migrated from SharePoint 2013 via detach/attach to SharePoint 2019. Now it’s time to switch over to modern UI without those expensive migration tools.

Any thougths/ideas out there what I’m missing or maybe another way to achieve the goal?

Moving large files with modern authentication

I am trying move files from one site collection to another. Following code works for smaller files but not for large files due to memory exceptions:

if (item.FileSystemObjectType == FileSystemObjectType.File) {     var fileName = item["FileLeafRef"] as string;     var fileSize = item["File_x0020_Size"];       item.Context.Load(item.File);      using (var stream = item.File.OpenBinaryStream().Value)     {          item.Context.ExecuteQueryWithIncrementalRetry(3, logger);          var fi = new FileCreationInformation();         fi.ContentStream = stream;         fi.Url = fileName;         fi.Overwrite = true;         folder.Files.Add(fi);         destLibrary.Context.ExecuteQueryWithIncrementalRetry(3, logger);     } } 

Is there anyway to to the same in batches? Notice SaveBinary etc cannot be used with modern authentication.

Moving large files with modern authentication

I am trying move files from one site collection to another. Following code works for smaller files but not for large files due to memory exceptions:

if (item.FileSystemObjectType == FileSystemObjectType.File) {     var fileName = item["FileLeafRef"] as string;     var fileSize = item["File_x0020_Size"];       item.Context.Load(item.File);      using (var stream = item.File.OpenBinaryStream().Value)     {          item.Context.ExecuteQueryWithIncrementalRetry(3, logger);          var fi = new FileCreationInformation();         fi.ContentStream = stream;         fi.Url = fileName;         fi.Overwrite = true;         folder.Files.Add(fi);         destLibrary.Context.ExecuteQueryWithIncrementalRetry(3, logger);     } } 

Is there anyway to to the same in batches? Notice SaveBinary etc cannot be used with modern authentication.

Moving large files with modern authentication

I am trying move files from one site collection to another. Following code works for smaller files but not for large files due to memory exceptions:

if (item.FileSystemObjectType == FileSystemObjectType.File) {     var fileName = item["FileLeafRef"] as string;     var fileSize = item["File_x0020_Size"];       item.Context.Load(item.File);      using (var stream = item.File.OpenBinaryStream().Value)     {          item.Context.ExecuteQueryWithIncrementalRetry(3, logger);          var fi = new FileCreationInformation();         fi.ContentStream = stream;         fi.Url = fileName;         fi.Overwrite = true;         folder.Files.Add(fi);         destLibrary.Context.ExecuteQueryWithIncrementalRetry(3, logger);     } } 

Is there anyway to to the same in batches? Notice SaveBinary etc cannot be used with modern authentication.

Moving large files with modern authentication

I am trying move files from one site collection to another. Following code works for smaller files but not for large files due to memory exceptions:

if (item.FileSystemObjectType == FileSystemObjectType.File) {     var fileName = item["FileLeafRef"] as string;     var fileSize = item["File_x0020_Size"];       item.Context.Load(item.File);      using (var stream = item.File.OpenBinaryStream().Value)     {          item.Context.ExecuteQueryWithIncrementalRetry(3, logger);          var fi = new FileCreationInformation();         fi.ContentStream = stream;         fi.Url = fileName;         fi.Overwrite = true;         folder.Files.Add(fi);         destLibrary.Context.ExecuteQueryWithIncrementalRetry(3, logger);     } } 

Is there anyway to to the same in batches? Notice SaveBinary etc cannot be used with modern authentication.

Moving through the space of an invisible enemy creature in combat

In my last session the party was fighting some Wyverns. When one got near the sorcerer, he became invisible and moved out of its reach, but stayed between the Wyvern and the warlock. On its next turn, the Wyvern moved to attack the warlock, but to do so, it would have to move through the sorcerer’s space.

On page 191 of the Player’s Handbook, it states under “Moving Around Other Creatures”:

[…] you can move through an hostile creature’s space only if the creature is at least two sizes larger or smaller than you. Remember that another creature’s space is difficult terrain for you.

The Wyvern is a Large creature, so it can’t move through the space occupied by the sorcerer, but it would definitely try to do so to attack the nearest enemy.

What should be the proper resolution of this event according to the rules?

I made my call by letting the Wyvern, a Large creature, pass through the space and gave the sorcerer a choice to make a Dexterity saving throw to avoid being trampled, or a Strength saving throw to stop the creature’s movement. The PC chose Dexterity and failed, so he got trampled. I considered the space difficult terrain for the Wyvern, used 2d6+4 as trample damage (same as for its Bite attack), concluded the movement out of the square occupied by the PC, left him prone, and made only the Stinger attack to maintain the average damage output.

I let my group know that it was my call to avoid stopping combat and searching for rules, and that in the future, the same situation may be managed differently according to official rules, but what are those rules?