(Needs Maintainer) Nexus VR Character Model [Open Source]

Hello
Congratulations! A great module
I have some questions:

  • is it possible to configure (increase) the teleport distance?

  • when Nexus VR “changes the character model” does this happen only locally for the player or this has consequences, which are visible on the server and affect the other players (including those which are not using VR)?

  • when a given player is not using VR or when no one on the server is using VR, are the scripts doing character model replication necessary for VR, still executed ? (I am asking from performance point of view)

Thank you in advance

The teleport controllers use an arc to calculate the end point. This constant used to determine how it comes down is hard-coded but could be made configurable.

All changes to the character are made locally on every client. From my experience, the server will still see you move around but arm/leg/neck movements won’t be visible.

The code is still there but is only listening for something to do. It won’t initialize your character if you aren’t in VR and won’t do anything to other characters unless the server says to do so.

4 Likes

I know this topic hasn’t gotten any replies for five months, but I’ve tested the New Humanoid Physics Controller and have discovered that Nexus VR Character Model doesn’t work at all when this new controller is active.

Teleportation doesn’t work at all, not even showing the arc. Smooth locomotion (my preferred mode) makes my character rapidly turn side to side, like they’re shaking their head. Here’s a recording of this strange behavior:


Additionally, errors about “position” being nil are constantly reported in the output pane. Here’s a sample:

Example outputted errors

19:12:31.549 RunService:fireRenderStepEarlyFunctions unexpected error while invoking callback: ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Studio
19:12:31.578 ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Client - BaseController:121
19:12:31.578 Stack Begin - Studio
19:12:31.578 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController’, Line 121 - function ScaleInput - Studio - BaseController:121
19:12:31.578 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.TeleportController’, Line 86 - function UpdateCharacter - Studio - TeleportController:86
19:12:31.579 Script ‘ReplicatedStorage.NexusVRCharacterModel.State.ControlService’, Line 65 - function UpdateCharacter - Studio - ControlService:65
19:12:31.579 Script ‘Players.JoyfulFlowerMary.PlayerScripts.NexusVRCharacterModelClientLoader’, Line 98 - Studio - NexusVRCharacterModelClientLoader:98
19:12:31.579 Stack End - Studio
19:12:31.579 RunService:fireRenderStepEarlyFunctions unexpected error while invoking callback: ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Studio
19:12:31.604 ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Client - BaseController:121
19:12:31.604 Stack Begin - Studio
19:12:31.605 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController’, Line 121 - function ScaleInput - Studio - BaseController:121
19:12:31.605 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.TeleportController’, Line 86 - function UpdateCharacter - Studio - TeleportController:86
19:12:31.605 Script ‘ReplicatedStorage.NexusVRCharacterModel.State.ControlService’, Line 65 - function UpdateCharacter - Studio - ControlService:65
19:12:31.605 Script ‘Players.JoyfulFlowerMary.PlayerScripts.NexusVRCharacterModelClientLoader’, Line 98 - Studio - NexusVRCharacterModelClientLoader:98
19:12:31.605 Stack End - Studio
19:12:31.606 RunService:fireRenderStepEarlyFunctions unexpected error while invoking callback: ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Studio
19:12:31.632 ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Client - BaseController:121
19:12:31.633 Stack Begin - Studio
19:12:31.633 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController’, Line 121 - function ScaleInput - Studio - BaseController:121
19:12:31.633 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.TeleportController’, Line 86 - function UpdateCharacter - Studio - TeleportController:86
19:12:31.633 Script ‘ReplicatedStorage.NexusVRCharacterModel.State.ControlService’, Line 65 - function UpdateCharacter - Studio - ControlService:65
19:12:31.633 Script ‘Players.JoyfulFlowerMary.PlayerScripts.NexusVRCharacterModelClientLoader’, Line 98 - Studio - NexusVRCharacterModelClientLoader:98
19:12:31.633 Stack End - Studio
19:12:31.634 RunService:fireRenderStepEarlyFunctions unexpected error while invoking callback: ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Studio
19:12:31.679 ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Client - BaseController:121
19:12:31.679 Stack Begin - Studio
19:12:31.680 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController’, Line 121 - function ScaleInput - Studio - BaseController:121
19:12:31.680 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.TeleportController’, Line 86 - function UpdateCharacter - Studio - TeleportController:86
19:12:31.680 Script ‘ReplicatedStorage.NexusVRCharacterModel.State.ControlService’, Line 65 - function UpdateCharacter - Studio - ControlService:65
19:12:31.680 Script ‘Players.JoyfulFlowerMary.PlayerScripts.NexusVRCharacterModelClientLoader’, Line 98 - Studio - NexusVRCharacterModelClientLoader:98
19:12:31.680 Stack End - Studio
19:12:31.681 RunService:fireRenderStepEarlyFunctions unexpected error while invoking callback: ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Studio
19:12:31.708 ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Client - BaseController:121
19:12:31.708 Stack Begin - Studio
19:12:31.708 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController’, Line 121 - function ScaleInput - Studio - BaseController:121
19:12:31.709 Script ‘ReplicatedStorage.NexusVRCharacterModel.Character.Controller.TeleportController’, Line 86 - function UpdateCharacter - Studio - TeleportController:86
19:12:31.709 Script ‘ReplicatedStorage.NexusVRCharacterModel.State.ControlService’, Line 65 - function UpdateCharacter - Studio - ControlService:65
19:12:31.709 Script ‘Players.JoyfulFlowerMary.PlayerScripts.NexusVRCharacterModelClientLoader’, Line 98 - Studio - NexusVRCharacterModelClientLoader:98
19:12:31.710 Stack End - Studio
19:12:31.710 RunService:fireRenderStepEarlyFunctions unexpected error while invoking callback: ReplicatedStorage.NexusVRCharacterModel.Character.Controller.BaseController:121: attempt to index nil with ‘Position’ - Studio

I know this project wasn’t designed for the new, upcoming character controller, and I know that @TheNexusAvenger won’t be (or by this point, probably isn’t) maintaining this project anymore, but sadly, this new controller will replace the legacy version someday, and when it does, all games using Nexus VR Character Controller will break.

I think this is important enough to revive this topic.

Currently the new character controller beta lacks some of the additional features that make it a complete, backwards compatible replacement to the legacy Humanoid controllers. The new Controllers will be released soon as a standalone feature, but more work is still being done to have a fully integrated backwards compatible version of the Humanoid that should support all old games.

4 Likes

That’s great! :happy2: Thank you for the update, kleptonaut. To me, VR is the future, and is a nice experience on Roblox.

The new OpenXR update for Roblox has completely bricked games using this system, which is not good at all.

I do hope that these do get resolved as I use the VR Character model for some of my games and they are completely broken as of writing this. Roblox in VR works fine outside of games using it, so I assume that this issue is just with the VR Character model script. I’d like to see the utilization of the new OpenXR systems Roblox has in place with this to make the VR character model better than it already is.

Oh, that’s unfortunate. I haven’t visited my experience in VR since that update do I didn’t know it broke Nexus VR Character Model. I’m worried for this module’s future because @TheNexusAvenger stated on his blog that he may be discontinuing it or something.

Even if he edits this to make it compatible with the new update, imagine if something like this happens again without a maintainer… The best VR module will be dead at that point. :sad:

That is what I fear since it basically breaks VR for all of my games that use it. I have tried everything I could to see if there was a solution to fixing it to no avail.

I’m nervous too. For the past 2 years, I’ve been trying to get a new maintainer for the project. No individual has volunteers and the companies on Roblox won’t return my emails. I am basically forced to treat the project is dead in order to force someone to come along.

I’ll gladly review a pull request from someone who can fix… whatever is going on (“bricked games” is not descriptive to the problem; it may be a Roblox problem).

1 Like

Just my luck… It is a Roblox issue and not an issue with the Nexus VR Core. It just so happens that the VR Core crashes alongside it due to Roblox being incompatible with Meta Quest 2 through SteamVR. It results in just this:

My full statement here: Nexus VR is Completely Bricking Games for VR Users · Issue #1 · TheNexusAvenger/Nexus-VR-Core · GitHub

Bug report if you also experience these issues: Meta Quest 2 on SteamVR is nearly Unplayable

1 Like

Before the OpenXR update, the only issue I experienced is the chat being completely broken (and even turned off) if you have TextChatService.ChatVersion set to TextChatService.

Looks like all you can do is wait for Roblox to fix it.

2 Likes

really cool resource, currently having a poke at making a zombie game support it, but controls are iffy, i like how locomotion works, but it does have some issues

Is there a way to get half life alyx style locomotion movement

Using gears likes to point where the ui is (I think)
and using the camera is a pain

is it possible to walk with the left stick, move camera with the right, and then having the gun aim with full freedom, trigger and such to fire

Should note the gun system just uses the player mouse and are gears

1 Like

This is a limitation with Roblox, not Nexus VR Character Model. I strongly suggest not using the mouse in VR for aiming. Your aiming should be based on the physical location of items.

1 Like

I do want to try letting both pc and vr users to handle shooting, any idea?

Also preventing the weird camera drift,using the Index (i know you mentioned it has issues)

Can share videos and stuff

If vrservice.vrenabled == true then
– Vr script aiming
else
– PC script aiming
End

Im in mobile but when i get on pc im sure i can figure out a way to make a way to aim!

Peace!
-Marcosygian

1 Like

Oh also the camera drifting, uhhh I believe its the roblox updates but at the same time the nexus vr. If it was the nexus vr, I dont think it will be fixed anytime soon til we get a maintainer for nexus.

Question, will there be support for swimming in water in the future?

This is genuinely cool. It’s quite sad to see how barebones VR Mode normally is compared to this, and equally sad to see how little games support it.

Now that Meta devices have a native Roblox app, maybe more devs will be inclined to take a look at this? here’s hoping anyway.

I doubt since it’s not really based on the movement but the physics.

This might be cool and all but not really useful. I mean, pool parties would be great. But I doubt their even going to add it in since this isn’t based on the movement. It’s mostly on physics. If you want it to work for water, you wouldn’t bother figuring it out and making it or waiting for a maintainer which I would guess til 2025. (Just a guess)