If you test ball joints they are wierd
According to the docs it should be SetLimits(cone,twist), however cone seems to be set in the last parameter.
And twist doesn't seem to work, however setting a high value, seems to break cone.?
Test :
Copy/paste into any App.lua
camera=Camera:Create()
camera:SetPosition(0,2,-5)
ground = Model:Box(20,1,20)
local shape=Shape:Box(0,0,0,0,0,0,20,1,20)
ground:SetShape(shape)
ground:SetMass(0)
box1 = Model:Box()
box1:SetPosition(0,1.5,0)
box1:SetColor(1,0,0)
local shape=Shape:Box()
box1:SetShape(shape)
box1:SetMass(20)
box2=box1:Instance()
box2:SetColor(0,1,0)
box2:SetPosition(0,3,0)
box2:SetMass(1)
cone=0
twist=45
joint=Joint:Ball(0,2,0,box1,box2)
joint:SetLimits(cone,twist)
joint:EnableLimits()
box2:AddTorque(200,200,200)