Citrus R6 V.1.2.0 | R6 rigs without humanoids

image

I realized that the userId parameter was actually not meant to be there the whole time, it was originally going to be added but I opted to create a function to load an userId.

You can load your avatar using the :LoadUserId(userId) function instead, I’ll be removing the parameter on an update to not confuse people.

1 Like

What’s the music from the youtube video in the post?

1 Like

The music comes from this video:

3 Likes

Sorry if I’m a bit dense here, but is there any specific reason this is supposed to run exclusively on client scripts?
Or does it also run on server scripts.

All in all I’m a tad confused about the usage of this script.
I know it’s only a rig, and doesn’t work out the box, It’s intended for custom player controllers.

But where to place the stuff in the provided model in my project, where and on what to call the functions could overall benefit from some extra context.

1 Like

It can run on server too, if it is not working then could you send me the error or proof of it not working, I didn’t really test it on server because I never used this on server so my bad.

It was mainly done for client though, because originally my game only used a box to detect the collisions and stuff for the character controller, the character models would only be rendered on clients with data being streamed from the server. (Anims, Position, etc.)

If you are going to use it on both ends place it somewhere like Replicated Storage.
image

1 Like

Well first and foremost it gives me the error of:

ReplicatedStorage.Constant.Libs.CitrusR6:86: attempt to index nil with 'Humanoid' - Server - CitrusR6:86

After un-commenting a line in the initialize function, and initializing it first, which it isn’t mentioned anywhere you have to do as far as I’m aware:

face is not a valid member of MeshPart "Lighting.R15Rig.Head"

I noticed this is due to some jank with dynamic faces.

Lastly, Is there any reason the r15 rig gets shoved into lighting?.. Seems a bit un-orderly.
Especially since after the server initializes, if a client were to initialize, R15Rig wouldn’t be under the modulescript anymore.

Sorry if this all comes off as a bit harsh, I like what you made and just want it to be as best as it can be.

1 Like

Ah, I see the issue now, I’ll release a patch ASAP.

As for the lighting thing, it is related to a trick to force accessories and stuff to render, I don’t know if it still works but I put it there anyways.

1 Like

Have you heard of any issues using this and Roblox’s physics controllers?
If not, I’m going to be using this, thanks!

Update V1.2.0

  • Initializing using .Initialize() is no longer required, it will initialize automatically when the module is required (Keep in mind if all references are lost and you require it again it may break).
  • Fixed bugs related to requiring on server (Thanks @draakjes ).
  • Removed userId parameter on .new() (Use Rig:LoadUserId(userId) ).
1 Like

Most of the problems are fixed! :3

There’s just still the issue loading faces of users who have a dynamic head equipped, though.
I’m sorry for not highlighting it properly earlier, but it’s a seperate bug I encountered.

face is not a valid member of MeshPart "Lighting.R15Rig.Head"  -  Server - CitrusRig:97

As people with dynamic heads do not have faces in the traditional sense, there’s no simple face decal as you can see here.
image

It will stop and throw an error loading any user who has a dynamic head on.

2 Likes

Sadly dynamic heads are not supported, I will add a patch later to block dynamic heads from attempting to be loaded and place the default face instead.

Fun fact: The face decals support HD faces, meaning they don’t get blurry!

2 Likes

dang that’s useful! I hope I will find an awesome use to this, optimization is the key!

1 Like

Also I hate to bear bad news again, but alongside the seams on the meshes being a bit iffy, the top side of the legs has the UV straight up be upside down, it seems?

Not sure if it’s anything in your power to fix as IIRC you got the model from somebody else, but I do feel like it’s good to mention for the other users out here.

1 Like

Does this support existing R6 animations? My game uses dozens of client-sided R6 NPCs that the player can talk with but they all walk around and use animations

1 Like

:skull: I didn’t realize that, I also thought initially that the uv corners being wrong where people using shirt templates that where poorly cropped.

This will take me a while to fix.

1 Like

Yes you can load your animations as normal.

2 Likes

Power to you! I have witnessed the horrors of blender 2nd hand.
I’m pretty sure that’s the last of the issues by far, though. And this is a really really good utility past that.

I’m excited to see this script at it’s full potential! :3

Edit: I think I found a leftover from your own project? There’s some sort of eye flash particle emitter under the head.
temp

There I was wasting my time looking for the eye flash for the Fatal Blow abbility, I don’t even remember why I put it inside an R6 rig if I don’t even use roblox characters for my game.

1 Like