# CharacterController with @babylonjs/core

**URL:** https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009
**Category:** Questions
**Tags:** es6, character-controller
**Created:** [February 13, 2024, 7:22pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009 "2024-02-13T19:22:16Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![Boz](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/boz/32/4294_2.png) [@Boz](https://forum.babylonjs.com/u/Boz)
#### Post date: [February 13, 2024, 7:22pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009/1 "2024-02-13T19:22:16Z")

</div>

Hello !  
I am back to BabylonJS after a year or two out, the new version looks promising 😃

I just setup my project with a 3d model and I want to use [the Character Controller library](https://github.com/ssatguru/BabylonJS-CharacterController) from @satguru which is doing exactly what I want to do.

However, it has a dependency “babylonjs” and my project is with React, I use `import { ... } from "@babylonjs/core"`

I tried to import “babylonjs” as well, even if having both dependencies is not a good option, but I end up with some type issues, and I think this library was not made to be used with these es6 modules…

Is it a workaround to get all this working ?  
Thank you in advance !!

---

<div class="post-metadata">

### Author: ![labris](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/labris/32/12576_2.png) [@labris](https://forum.babylonjs.com/u/labris)
#### Post date: [February 13, 2024, 7:54pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009/2 "2024-02-13T19:54:53Z")

</div>

Do you want to use the source .ts file for Character Controller or you may use .js file without any imports?

---

<div class="post-metadata">

### Author: ![Boz](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/boz/32/4294_2.png) [@Boz](https://forum.babylonjs.com/u/Boz)
#### Post date: [February 13, 2024, 7:59pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009/3 "2024-02-13T19:59:32Z")

</div>

You mean importing files by hand in my project ?  
I am afraid I did not understand you very well 😅

I do not have any requirement by the way, I am open to any suggestion

---

<div class="post-metadata">

### Author: ![labris](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/labris/32/12576_2.png) [@labris](https://forum.babylonjs.com/u/labris)
#### Post date: [February 13, 2024, 8:01pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009/4 "2024-02-13T20:01:34Z")

</div>

Solution 1. Change import in CharacterController.ts from `"babylonjs"` to `"@babylonjs/core"`.  
Solution 2. Use .js file from the /dist folder - [BabylonJS-CharacterController/dist/CharacterController.js at master · ssatguru/BabylonJS-CharacterController · GitHub](https://github.com/ssatguru/BabylonJS-CharacterController/blob/master/dist/CharacterController.js)

---

<div class="post-metadata">

### Author: ![Boz](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/boz/32/4294_2.png) [@Boz](https://forum.babylonjs.com/u/Boz)
#### Post date: [February 13, 2024, 8:22pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009/5 "2024-02-13T20:22:55Z")

</div>

I tried solution 1, but now I encounter another problem. I am using React with Remix.run, which is a full stack web framework, and it needs to load BabylonJS on the client only.

I lazy-load it with  
const CharacterController = React.lazy(() =\>  
import(‘babylonjs-charactercontroller’).then((module) =\> ({ default: module.CharacterController }))  
); but get another error : “Target signature provides too few arguments”

Regarding solution 2, I do not really know how to apply it.  
Thanks for your help anyway

---

<div class="post-metadata">

### Author: ![Boz](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/boz/32/4294_2.png) [@Boz](https://forum.babylonjs.com/u/Boz)
#### Post date: [February 13, 2024, 9:32pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009/6 "2024-02-13T21:32:31Z")

</div>

I finally managed to get it work by copying/paste the file [BabylonJS-CharacterController/src/CharacterController.ts at master · ssatguru/BabylonJS-CharacterController · GitHub](https://github.com/ssatguru/BabylonJS-CharacterController/blob/master/src/CharacterController.ts) in my project and changing the import in the first line from babylonjs to @babylonjs/core.

Thanks @labris for taking me in the right direction

---

<div class="post-metadata">

### Author: ![labris](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/labris/32/12576_2.png) [@labris](https://forum.babylonjs.com/u/labris)
#### Post date: [February 13, 2024, 9:37pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009/7 "2024-02-13T21:37:01Z")

</div>

Both solutions work for even with React (but without React.lazy), but, of course, it also depends on environment settings.  
Regarding the solution 2 is goes as something like

`import * as CC from "https://raw.githubusercontent.com/ssatguru/BabylonJS-CharacterController/master/dist/CharacterController.js"`

Also you’ll need to add ts declaration - [BabylonJS-CharacterController/dist/CharacterController.d.ts at master · ssatguru/BabylonJS-CharacterController · GitHub](https://github.com/ssatguru/BabylonJS-CharacterController/blob/master/dist/CharacterController.d.ts)

I don’t know much about Remix.run but I think the solution 1 is more flexible since you may want to edit CharacterController.ts file later, so I hope you’ll be able to make it work. Actually one imports it with the same way as babylon.js.

---

<div class="post-metadata">

### Author: ![labris](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/labris/32/12576_2.png) [@labris](https://forum.babylonjs.com/u/labris)
#### Post date: [February 13, 2024, 10:25pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009/8 "2024-02-13T22:25:51Z")

</div>

> [@Boz](#):
>
> I finally managed to get it work by copying/paste

This is what I meant as Solution 1 🙂

---

<div class="post-metadata">

### Author: ![MackeyK24](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/mackeyk24/32/3741_2.png) [@MackeyK24](https://forum.babylonjs.com/u/MackeyK24)
#### Post date: [March 13, 2024, 12:43pm UTC](https://forum.babylonjs.com/t/charactercontroller-with-babylonjs-core/48009/9 "2024-03-13T12:43:20Z")

</div>

FYI… My Babylon Toolkit has built - in support for new Havok Physics engine with all the Unity Colliders… Including the UNITY.CharacterController Pro Class.

[Unity Interactive Content - Character Controller Demo Playground](https://playground.babylonjs.com/index.html?BabylonToolkit#V9AUOR)
