prowlengine/prowl/prowl-physics
- community
Checking that the SKILL.md file is still in the repository.
Prowl physics for gameplay. Use when writing movement with CharacterController, raycasts or shape casts for shooting and ground checks, layers and query filters, rigidbody projectiles and forces, trigger zones, collision callbacks, or making objects shootable.
Install
npx vskill@latest install prowlengine/prowl/prowl-physicsSKILL.md
Prowl physics
Queries
Queries live on the scene: Scene.Current.Physics. Scene is in Prowl.Runtime.Resources, and without that using, Scene inside a component means the component's own nullable Scene property. Queries are main thread only.
Raycast(origin, direction, out RaycastHit hit)andRaycast(origin, direction, maxDistance, out hit).- With a filter, Raycast moves the out before the distance:
Raycast(origin, direction, out hit, maxDistance, filter). SphereCast keeps it after:SphereCast(origin, radius, direction, maxDistance, out hit, filter). RaycastAll(origin, direction, maxDistance, hits)fills a list, nearest first.Linecast(from, to, out hit).SphereCast(origin, radius, direction, maxDistance, out ShapeCastHit hit),OverlapSphere(position, radius, hits),OverlapBox(position, size, rotation, hits). Box sizes are full extents, not half.- The direction is normalized for you.
Hit data:
hit.Point,hit.Normal,hit.Distance,hit.Collider,hit.Transform.- Use
hit.Transform.GameObjectto find what was hit. `hit.Collider` is null for terrain and `hit.Rigidbody` is null for static colliders.
Filters and layers:
new QueryFilter(mask).Ignoring(myBody)skips the shooter. ALayerMaskconverts to aQueryFilterby itself.default(LayerMask)andLayerMask.Everythinghit every layer. Build masks withLayerMask.FromMask(1u << LayerMask.NameToLayer("Enemy")).
CharacterController
- The pivot is at the feet.
HeightandRadiusextend up from there. Move(displacement)takes a distance for this frame, not a velocity, and returnsCharacterController.CollisionFlags(Sides,Above,Below). There is noSimpleMoveand no gravity, apply it yourself.IsGrounded,Velocity(what the last move achieved),GroundNormal,GroundVelocity.- Use
Teleport(position)to place it. Setting the Transform directly is not a move. - It never pushes rigidbodies.
- It has no physics body, so raycasts and triggers do not see it as a body. To make the player shootable, add a collider and a kinematic
Rigidbody3Don the controller's own GameObject, which the controller ignores. A body on a child is not ignored, so callcontroller.IgnoreCollisionWith(childBody)for it. - A CharacterController gets no
OnCollisionBeginfor what it walks into. AfterMove, readcontroller.Hits(a list ofShapeCastHit) andcontroller.Collisions.
Rigidbody3D
MotionType(namespaceJitter2.Dynamics, addusing Jitter2.Dynamics;) isDynamic,KinematicorStatic. There is noisKinematicbool.LinearVelocity,AngularVelocity,Mass,AffectedByGravity,AddForce(force, ForceMode),ApplyImpulse(impulse),MovePosition,MoveRotation.- A collider with no
Rigidbody3Don it or a parent is static. - Interpolation is on by default.
LinearDampingandAngularDamping(0 to 1) are the fraction of velocity removed every physics step, so they are strong: at 60 steps a second, 0.1 leaves under 1 percent of the speed after one second. The defaults are 0.002 and 0.005.- A ball rolled only by torque climbs onto light bodies such as crates instead of pushing them. Add a horizontal force in the direction of travel as well.
Collisions and triggers
OnCollisionBegin,OnCollisionStayandOnCollisionEnd(Collision collision)fire on both sides: on the object with the collider and on the object with the rigidbody.collision.GameObjectis the other object andcollision.Normalpoints toward this side.- Colliders have no trigger flag. Add a
TriggerVolumecomponent instead.OnTriggerEnter/Stay/Exit(Rigidbody3D other)then fire on the trigger's own GameObject, for bodies with aRigidbody3D. Character controllers entering it raiseOnCharacterEnter/Stay/Exit(CharacterController controller)instead. TriggerVolume.OverlappingandOverlappingCharacterslist what is inside right now.
Look up PhysicsWorld, CharacterController, Rigidbody3D, TriggerVolume, QueryFilter and ShapeCastHit with api --type.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingProwl.Editor/Resources/Agent/Skills/prowl-physics/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/prowlengine/prowl/prowl-physics)