Viewmodel Positioning below the World?

So when trying to recreate a viewmodel, I got to the Part where i need to Position it with the Camera, but when i did so, it positions it below the World?

I Checked, The Model is inside the Camera:

Screenshot (150)

Why is this the case, I’m using this code:

LocalScript:

local CSvc = require(game.ReplicatedStorage.Modules.ClientService)
-- CSvc Stands for ClientService (as you can see)

local VM = CSvc:newVModel()

CSvc.PreRender:Connect(function() -- RunService.RenderStepped
VM:SetPrimaryPartCFrame(CSvc.Cam.CFrame) -- CSvc.Cam = workspace.CurrentCamera
end)

ModuleScript:

local C = {}

C.Run = game:GetService("RunService")

C.PreRender = C.Run.RenderStepped


C.Plr = game.Players.LocalPlayer
C.Chr = C.Plr.Character or C.Plr.CharacterAdded:Wait()

C.Cam = workspace.CurrentCamera
C.VModel = game.ReplicatedStorage.Viewmodel


C.VCFrame = CFrame.new( 0 , -1.5 , 0 ) -- Viewmodel Offset (Not Used)

function C:newVModel() -- clones a Viewmodel
	local Clone = C.VModel:Clone()
	Clone.Parent = C.Cam
	
	return Clone
end

return C

I Went through Proccess and elimation to find my issue, and I have no idea what my issue is, the Viewmodel is welded with Motor6Ds, I Double Checked my Code to see if I was doing anything wrong, nothing, Why is this happening? Am I missing something?

1 Like

the only solutions I can think of is

Make sure at least one part is anchored (preferably the primepart)

Just for the sake of it try just using workspace.CurrentCamera.CFrame to see if the table is the problem

Try to parent the vm to world model to see if it has anything to do with roblox physics

other than that I can just wish you good luck

Yes, I tried but it makes the Model fly un controllably

Doesnt work either

That breaks the Viewmodel

I tested with an unanchored Part, works fine
I tested with basic code works fine with the Part

Its just the Viewmodel that isnt working

Can you show a ss of the vm and its descendants?


I don’t get why it isn’t working. The only thing I’m thinking is if the renderstepped loop is even running. But other then that I don’t know. But I gotta go now, I’ll check tomorrow when I have access to a computer if you haven’t solved it

Maybe try printing the cframe coordinates every renderstepped.

Yeah, Im not sure about that:

19:55:17.029  -30.5445347, 10.4164677, -56.3057137, -0.979125857, -0.0526062846, 0.196329325, 0, 0.965925753, 0.258819014, -0.203255102, 0.253416389, -0.945762813  -  Client - Viewmodel:32
  19:55:17.073  -30.5445347, 9.19021797, -56.3057137, -0.979125798, -0.0526062809, 0.196329311, -2.17110752e-09, 0.965925694, 0.258819014, -0.203255117, 0.253416389, -0.945762873  -  Client - Viewmodel:32
  19:55:17.148  -30.5445347, 7.03746796, -56.3057137, -0.979125798, -0.0526062809, 0.196329311, -2.04678763e-09, 0.965925694, 0.258819014, -0.203255117, 0.253416389, -0.945762873  -  Client - Viewmodel:32
  19:55:17.162  -30.5445347, 6.18590546, -56.3057137, -0.979125798, -0.0526062809, 0.196329311, -2.01802974e-09, 0.965925694, 0.258819014, -0.203255117, 0.253416389, -0.945762873  -  Client - Viewmodel:32
  19:55:17.188  -30.5445347, 6.04678917, -56.3057137, -0.979125798, -0.0526062809, 0.196329311, -1.92812522e-09, 0.965925694, 0.258819014, -0.203255117, 0.253416389, -0.945762873  -  Client - Viewmodel:32
  19:55:17.216  -30.5445347, 6.15108204, -56.3057137, -0.979125798, -0.0526062809, 0.196329311, -2.03056061e-09, 0.965925694, 0.258819014, -0.203255117, 0.253416389, -0.945762873  -  Client - Viewmodel:32

Position isnt much better either:

 19:56:46.234  -30.54453468322754, 10.416467666625977, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.351  -30.54453468322754, 9.081215858459473, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.404  -30.54453468322754, 6.873968124389648, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.481  -30.54453468322754, 6.197833061218262, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.518  -30.54453468322754, 6.263370513916016, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.535  -30.54453468322754, 6.280488967895508, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.567  -30.54453468322754, 6.2826337814331055, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.584  -30.54453468322754, 6.285402297973633, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.601  -30.54453468322754, 6.285905838012695, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.622  -30.54453468322754, 6.285968780517578, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.641  -30.54453468322754, 6.286170959472656, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.667  -30.54453468322754, 6.2862653732299805, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.723  -30.54453468322754, 6.286314964294434, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.738  -30.54453468322754, 6.286344528198242, -56.30571365356445  -  Client - Viewmodel:32
  19:56:46.752   ▶ -30.54453468322754, 6.286346435546875, -56.30571365356445 (x2)  -  Client - Viewmodel:32
  19:56:46.795   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x41)  -  Client - Viewmodel:32
  19:56:47.478  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:47.496   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x37)  -  Client - Viewmodel:32
  19:56:48.128  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:48.144   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x35)  -  Client - Viewmodel:32
  19:56:48.728  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:48.745   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x12)  -  Client - Viewmodel:32
  19:56:48.945  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:48.961   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x7)  -  Client - Viewmodel:32
  19:56:49.078  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:49.094   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x14)  -  Client - Viewmodel:32
  19:56:49.328  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:49.344   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x14)  -  Client - Viewmodel:32
  19:56:49.578  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:49.595   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x7)  -  Client - Viewmodel:32
  19:56:49.712  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:49.730   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x8)  -  Client - Viewmodel:32
  19:56:49.862   ▶ -30.54453468322754, 6.286346435546875, -56.30571365356445 (x3)  -  Client - Viewmodel:32
  19:56:49.912   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x2)  -  Client - Viewmodel:32
  19:56:49.945  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:49.962   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x2)  -  Client - Viewmodel:32
  19:56:49.995  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:50.012   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x2)  -  Client - Viewmodel:32
  19:56:50.046  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:50.061   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x8)  -  Client - Viewmodel:32
  19:56:50.198   ▶ -30.54453468322754, 6.286348342895508, -56.30571365356445 (x2)  -  Client - Viewmodel:32
  19:56:50.228  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:50.245   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x4)  -  Client - Viewmodel:32
  19:56:50.311  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:50.328   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x2)  -  Client - Viewmodel:32
  19:56:50.362  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:50.378   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x9)  -  Client - Viewmodel:32
  19:56:50.529  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:50.545  -30.54453468322754, 6.286347389221191, -56.30571365356445  -  Client - Viewmodel:32
  19:56:50.561  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:50.578   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x14)  -  Client - Viewmodel:32
  19:56:50.811  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:50.830   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x10)  -  Client - Viewmodel:32
  19:56:51.001  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:51.015  -30.54453468322754, 6.286347389221191, -56.30571365356445  -  Client - Viewmodel:32
  19:56:51.030  -30.54453468322754, 6.286346435546875, -56.30571365356445  -  Client - Viewmodel:32
  19:56:51.047   ▶ -30.54453468322754, 6.286347389221191, -56.30571365356445 (x2)  -  Client - Viewmodel:32

@screenswitch1 Now with rounded Positions:

20:09:04.868  -82 22 -123  -  Client - Viewmodel:33
  20:09:04.990  -82 20 -123  -  Client - Viewmodel:33
  20:09:05.043  -82 18 -123  -  Client - Viewmodel:33
  20:09:05.065  -82 16 -123  -  Client - Viewmodel:33
  20:09:05.135  -82 12 -123  -  Client - Viewmodel:33
  20:09:05.149  -82 11 -123  -  Client - Viewmodel:33
  20:09:05.171  -82 10 -123  -  Client - Viewmodel:33
  20:09:05.200  -82 9 -123  -  Client - Viewmodel:33
  20:09:05.214  -82 6 -123  -  Client - Viewmodel:33
  20:09:05.231   ▶ -82 5 -123 (x2)  -  Client - Viewmodel:33
  20:09:05.268   ▶ -82 6 -123 (x22)  -  Client - Viewmodel:33
  20:09:05.672  -82 7 -122  -  Client - Viewmodel:33
  20:09:05.684  -83 8 -122  -  Client - Viewmodel:33
  20:09:05.737  -84 12 -119  -  Client - Viewmodel:33
  20:09:05.753  -84 13 -119  -  Client - Viewmodel:33
  20:09:05.769  -84 14 -118  -  Client - Viewmodel:33
  20:09:05.783   ▶ -84 14 -117 (x11)  -  Client - Viewmodel:33
  20:09:05.966   ▶ -84 15 -117 (x2)  -  Client - Viewmodel:33
  20:09:06.000   ▶ -84 16 -118 (x2)  -  Client - Viewmodel:33
  20:09:06.033   ▶ -84 17 -118 (x3)  -  Client - Viewmodel:33
  20:09:06.083  -85 18 -119  -  Client - Viewmodel:33
  20:09:06.100  -85 19 -119  -  Client - Viewmodel:33
  20:09:06.118  -85 20 -120  -  Client - Viewmodel:33
  20:09:06.133  -85 21 -120  -  Client - Viewmodel:33
  20:09:06.151  -86 23 -121  -  Client - Viewmodel:33
  20:09:06.167  -86 25 -122  -  Client - Viewmodel:33
  20:09:06.187  -86 28 -124  -  Client - Viewmodel:33
  20:09:06.205  -87 31 -125  -  Client - Viewmodel:33
  20:09:06.222  -88 34 -127  -  Client - Viewmodel:33
  20:09:06.235  -88 36 -128  -  Client - Viewmodel:33
  20:09:06.249  -88 38 -129  -  Client - Viewmodel:33
  20:09:06.266  -89 41 -130  -  Client - Viewmodel:33
  20:09:06.282  -89 44 -132  -  Client - Viewmodel:33
  20:09:06.299  -90 46 -133  -  Client - Viewmodel:33
  20:09:06.316  -90 47 -133  -  Client - Viewmodel:33
  20:09:06.333  -91 48 -134  -  Client - Viewmodel:33
  20:09:06.349   ▶ -91 49 -134 (x2)  -  Client - Viewmodel:33
  20:09:06.383   ▶ -91 50 -134 (x3)  -  Client - Viewmodel:33
  20:09:06.436   ▶ -91 51 -134 (x6)  -  Client - Viewmodel:33
  20:09:06.532   ▶ -91 51 -133 (x8)  -  Client - Viewmodel:33
  20:09:06.667  -91 52 -134  -  Client - Viewmodel:33
  20:09:06.682  -91 54 -135  -  Client - Viewmodel:33
  20:09:06.700  -92 58 -136  -  Client - Viewmodel:33
  20:09:06.715  -93 62 -138  -  Client - Viewmodel:33
  20:09:06.733  -93 66 -140  -  Client - Viewmodel:33
  20:09:06.750  -94 71 -142  -  Client - Viewmodel:33
  20:09:06.765  -95 77 -145  -  Client - Viewmodel:33
  20:09:06.782  -96 82 -147  -  Client - Viewmodel:33
  20:09:06.799  -98 88 -150  -  Client - Viewmodel:33
  20:09:06.816  -99 95 -153  -  Client - Viewmodel:33
  20:09:06.832  -100 101 -156  -  Client - Viewmodel:33
  20:09:06.850  -101 106 -158  -  Client - Viewmodel:33
  20:09:06.865  -101 109 -159  -  Client - Viewmodel:33
  20:09:06.884  -102 112 -161  -  Client - Viewmodel:33
  20:09:06.899  -103 113 -163  -  Client - Viewmodel:33
  20:09:06.916  -104 114 -164  -  Client - Viewmodel:33
  20:09:06.933  -104 115 -165  -  Client - Viewmodel:33
  20:09:06.950   ▶ -105 115 -166 (x2)  -  Client - Viewmodel:33
  20:09:06.982  -105 116 -166  -  Client - Viewmodel:33
  20:09:06.999   ▶ -105 116 -167 (x3)  -  Client - Viewmodel:33
  20:09:07.049   ▶ -106 116 -167 (x7)  -  Client - Viewmodel:33
  20:09:07.168  -105 117 -166  -  Client - Viewmodel:33
  20:09:07.184   ▶ -104 117 -166 (x21)  -  Client - Viewmodel:33
  20:09:07.534  -104 117 -165  -  Client - Viewmodel:33
  20:09:07.549   ▶ -104 118 -164 (x2)  -  Client - Viewmodel:33
  20:09:07.582   ▶ -104 118 -163 (x10)  -  Client - Viewmodel:33
  20:09:07.749   ▶ -103 118 -164 (x3)  -  Client - Viewmodel:33
  20:09:07.800   ▶ -102 118 -165 (x2)  -  Client - Viewmodel:33
  20:09:07.833   ▶ -102 117 -167 (x3)  -  Client - Viewmodel:33
  20:09:07.883  -103 116 -168  -  Client - Viewmodel:33
  20:09:07.901   ▶ -102 116 -169 (x2)  -  Client - Viewmodel:33
  20:09:07.932   ▶ -103 115 -170 (x3)  -  Client - Viewmodel:33
  20:09:07.983  -103 115 -171  -  Client - Viewmodel:33
  20:09:07.999  -103 114 -172  -  Client - Viewmodel:33
  20:09:08.016  -103 114 -173  -  Client - Viewmodel:33
  20:09:08.033  -103 113 -173  -  Client - Viewmodel:33
  20:09:08.049   ▶ -104 112 -175 (x2)  -  Client - Viewmodel:33
  20:09:08.083  -104 111 -176  -  Client - Viewmodel:33
  20:09:08.099  -104 111 -177  -  Client - Viewmodel:33
  20:09:08.117  -105 110 -177  -  Client - Viewmodel:33
  20:09:08.133  -105 110 -178  -  Client - Viewmodel:33
  20:09:08.149  -105 110 -179  -  Client - Viewmodel:33
  20:09:08.166   ▶ -105 109 -180 (x2)  -  Client - Viewmodel:33
  20:09:08.200  -105 108 -181  -  Client - Viewmodel:33
  20:09:08.216  -105 107 -182  -  Client - Viewmodel:33
  20:09:08.233  -105 107 -183  -  Client - Viewmodel:33
  20:09:08.250  -105 106 -184  -  Client - Viewmodel:33
  20:09:08.266  -105 105 -185  -  Client - Viewmodel:33
  20:09:08.283  -105 104 -186  -  Client - Viewmodel:33
  20:09:08.299  -106 104 -187  -  Client - Viewmodel:33
  20:09:08.315   ▶ -106 103 -187 (x3)  -  Client - Viewmodel:33
  20:09:08.367   ▶ -106 103 -188 (x3)  -  Client - Viewmodel:33
  20:09:08.418   ▶ -106 102 -189 (x3)  -  Client - Viewmodel:33
  20:09:08.466   ▶ -106 101 -190 (x2)  -  Client - Viewmodel:33
  20:09:08.499  -106 100 -191  -  Client - Viewmodel:33
  20:09:08.516  -107 99 -192  -  Client - Viewmodel:33
  20:09:08.534  -106 99 -193  -  Client - Viewmodel:33
  20:09:08.549  -106 98 -194  -  Client - Viewmodel:33
  20:09:08.566  -107 97 -194  -  Client - Viewmodel:33
  20:09:08.582  -106 96 -196  -  Client - Viewmodel:33
  20:09:08.599  -107 94 -198  -  Client - Viewmodel:33
  20:09:08.618  -105 93 -199  -  Client - Viewmodel:33
  20:09:08.634  -105 91 -201  -  Client - Viewmodel:33
  20:09:08.650  -106 89 -203  -  Client - Viewmodel:33
  20:09:08.666  -105 87 -205  -  Client - Viewmodel:33
  20:09:08.683  -106 85 -207  -  Client - Viewmodel:33
  20:09:08.700  -105 81 -210  -  Client - Viewmodel:33
  20:09:08.717  -105 78 -212  -  Client - Viewmodel:33
  20:09:08.732  -105 76 -213  -  Client - Viewmodel:33
  20:09:08.749  -105 72 -216  -  Client - Viewmodel:33
  20:09:08.765  -106 67 -219  -  Client - Viewmodel:33
  20:09:08.784  -105 63 -221  -  Client - Viewmodel:33
  20:09:08.799  -106 61 -222  -  Client - Viewmodel:33
  20:09:08.815  -106 60 -223  -  Client - Viewmodel:33
  20:09:08.833  -106 58 -224  -  Client - Viewmodel:33
  20:09:08.849  -106 56 -225  -  Client - Viewmodel:33
  20:09:08.867  -106 55 -225  -  Client - Viewmodel:33
  20:09:08.884  -106 52 -226  -  Client - Viewmodel:33
  20:09:08.899  -106 50 -227  -  Client - Viewmodel:33
  20:09:08.916  -107 50 -227  -  Client - Viewmodel:33
  20:09:08.933  -107 47 -228  -  Client - Viewmodel:33
  20:09:08.951  -105 46 -229  -  Client - Viewmodel:33
  20:09:08.966  -104 44 -230  -  Client - Viewmodel:33
  20:09:08.982  -104 43 -230  -  Client - Viewmodel:33
  20:09:08.999  -103 41 -231  -  Client - Viewmodel:33
  20:09:09.016  -103 40 -231  -  Client - Viewmodel:33
  20:09:09.032  -102 38 -232  -  Client - Viewmodel:33
  20:09:09.049  -102 37 -232  -  Client - Viewmodel:33
  20:09:09.066  -102 35 -233  -  Client - Viewmodel:33
  20:09:09.083  -102 34 -233  -  Client - Viewmodel:33
  20:09:09.099  -102 31 -233  -  Client - Viewmodel:33
  20:09:09.117  -102 29 -234  -  Client - Viewmodel:33
  20:09:09.134  -102 28 -234  -  Client - Viewmodel:33

God I am such an idiot, I used Camera instead of CurrentCamera

After that my Issue was fixed

RobloxScreenShot20230111_201958115

Welp, Having the Issue again

Hello.

I highly recommend you to not use the Model::SetPrimaryPartCFrame method and, instead, make the use of Model::PivotTo method. If you do not want to use the latter, you can try the method below which is guaranteed to work.

local function moveModel(model, cframe)
    local main = model.PrimaryPart
    local mainCFrame = main.CFrame
    for _, part in next, model:GetDescendants() do
        if part:IsA("BasePart") and part ~= main then
            local offset = mainCFrame:ToObjectSpace(part.CFrame)
            part.CFrame = cframe*offset
        end
    end
    main.CFrame = cframe
end

Best regards,
Octonions

Does the same thing as PivotTo but without the PrimaryPart

Explain?

Model::SetPrimaryPartCFrame throws off errors if you execute it many times. The offsets of the model begin to shift randomly around because of numerical approximation.

moveModel will take your model and it’s PrimaryPart, and then it will apply a linear transformation in order to preserve the offsets of your model. It tends to minimize the approximation because of the raw cframe values.

Not Exactly

Using RenderStepped would throw errors if so

Has never happened with me

I wonder why you are asking for help then.

because, the viewmodel is for some reason positioning itself blow the world when im setting to the Camera’s CFrame, i got it working until it suddenly broke again

@Octonions neither PivotTo, SetPrimaryPartCFrame, or your code work, it continues to position below the world


(Viewmodel gets destroyed at the end)

@Octonions @AMisspelledUsernaem @screenswitch1
Ok, so after a bit, it appears that its some weird Sizing Issue, for some reason, it appears to be below the Map, while its Parented and Position to the Camera, Which I find quite odd. Why would this happen?

There is only 2 Parts, and for some reason its being positioned below the map?

Would this cause issues?
How would I Fix it?

I do not know. You seem to have the answers to solve your problem already.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.