I want it so that when I press something it positions the part 5 studs away from them in the direction that they are looking I already have the press event I just don’t know how to do that.

Try this.

```
local p = Instance.new("Part",workspace)
p.Position = (game.Players[SomePlayer].Character.HumanoidRootPart*CFrame.new(0,0,-6)).p
```

You can use .LookVector to get the position in front of where a part is face,

And then times it for the distance you want in front (in this case 5)

`part.Position = character.HumanoidRootPart.CFrame.LookVector * 5`

Here is my code for it but this happens

```
E1Clone:SetAttribute("Owner", player.Name)
E1Clone.Parent = workspace
E2Clone.Parent = workspace
E3Clone.Parent = workspace
E4Clone.Parent = workspace
E1Clone.CFrame = HumanoidRP.CFrame * CFrame.Angles(0, math.rad(90), 0)
E2Clone.CFrame = HumanoidRP.CFrame * CFrame.Angles(0, math.rad(90), 0)
E3Clone.CFrame = HumanoidRP.CFrame * CFrame.Angles(0, math.rad(90), 0)
E4Clone.CFrame = HumanoidRP.CFrame * CFrame.Angles(0, math.rad(90), 0)
E1Clone.Position = HumanoidRP.CFrame.LookVector * 5
E2Clone.Position = HumanoidRP.CFrame.LookVector * 5
E3Clone.Position = HumanoidRP.CFrame.LookVector * 5
E4Clone.Position = HumanoidRP.CFrame.LookVector * 5
```

It does not go where I look

Maybe reverse them?

`- (hrp.CFrame.LookVector*5)`

I don’t think I’m doing it right its not working

```
E1Clone.Position = - (HumanoidRP.CFrame.LookVector*5)
E2Clone.Position = - (HumanoidRP.CFrame.LookVector*5)
E3Clone.Position = - (HumanoidRP.CFrame.LookVector*5)
E4Clone.Position = - (HumanoidRP.CFrame.LookVector*5)
E1Clone.CFrame = HumanoidRP.CFrame * CFrame.Angles(0, math.rad(90), 0)
E2Clone.CFrame = HumanoidRP.CFrame * CFrame.Angles(0, math.rad(90), 0)
E3Clone.CFrame = HumanoidRP.CFrame * CFrame.Angles(0, math.rad(90), 0)
E4Clone.CFrame = HumanoidRP.CFrame * CFrame.Angles(0, math.rad(90), 0)
```

Oh your reseting the position of the clones each time.

```
local cframe = CFrame.new(HumanoidRP.CFrame.LookVector*5) * CFrame.Angles(0, math.rad(90), 0)
E1Clone.CFrame = cframe
E2Clone.CFrame = cframe
E3Clone.CFrame = cframe
E4Clone.CFrame = cframe
```

The problem here is lookVector returns the front direction of the part. It is relative to the part so you must do

```
E1Clone.Position = HumanoidRP.CFrame.LookVector * 5 + E1Clone.Position
-- Adds the lookVector to the current position
--Before you were positioning it in world space
```

It now spawns them really far away

Code:

```
E1Clone.Position = HumanoidRP.CFrame.LookVector * 5 + E1Clone.Position
E2Clone.Position = HumanoidRP.CFrame.LookVector * 5 + E2Clone.Position
E3Clone.Position = HumanoidRP.CFrame.LookVector * 5 + E3Clone.Position
E4Clone.Position = HumanoidRP.CFrame.LookVector * 5 + E4Clone.Position
```

Must be

`E1Clone.Position = HumanoidRP.CFrame.LookVector * 5 + HumanoidRP.Position`

You are getting the lookvector and add it to the position of the part.

If you don’t add the position, it put is in world space

That works but how do I also make it orientate so it is facing me

Got to go after this post. Other devs can help you if you run into anymore problems.

Use CFrames to rotate and set the position

Change it to:

`E1Clone.CFrame = CFrame.new(HumanoidRP.CFrame.LookVector * 5 + HumanoidRP.Position, HumanoidRP.Position)`

I was rushing this but that should work. Sorry but I don’t have time to explain what I did.

gl

Yeah you can probably just rotate to your liking!

Sorry to bother you again and your probably gone now but for the life of me I don’t know how I would rotate to my liking.

Well, I’m not exactly sure that this is the most effective way, but you can do:

```
E1Clone.Orientation += Vector3.new(0, 90,0)
```

Thanks this worked I could just no figure it out

You could just rotate the instance which is being cloned -90 degrees or 90 degrees around the Y-axis such that its clones are correctly oriented, that way you don’t need to append `+= Vector3.new(0, 90, 0)`

to the instances’ “Orientation” property.