@quenty/ragdoll 15.21.1-canary.534.c6c59e8.0 → 15.22.1-canary.523.2b7508a.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,7 +3,19 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- ## [15.21.1-canary.534.c6c59e8.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/ragdoll@15.21.0...@quenty/ragdoll@15.21.1-canary.534.c6c59e8.0) (2025-02-18)
6
+ ## [15.22.1-canary.523.2b7508a.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/ragdoll@15.22.0...@quenty/ragdoll@15.22.1-canary.523.2b7508a.0) (2025-03-21)
7
+
8
+
9
+ ### Bug Fixes
10
+
11
+ * Fix stuff ([2b7508a](https://github.com/Quenty/NevermoreEngine/commit/2b7508aab3b39c8973a44af98377c61d53d2e647))
12
+ * ragdoll lag fix ([ff0aa13](https://github.com/Quenty/NevermoreEngine/commit/ff0aa132f2a162139c1e271e864fd919ba1e0513))
13
+
14
+
15
+
16
+
17
+
18
+ # [15.22.0](https://github.com/Quenty/NevermoreEngine/compare/@quenty/ragdoll@15.21.0...@quenty/ragdoll@15.22.0) (2025-02-18)
7
19
 
8
20
  **Note:** Version bump only for package @quenty/ragdoll
9
21
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quenty/ragdoll",
3
- "version": "15.21.1-canary.534.c6c59e8.0",
3
+ "version": "15.22.1-canary.523.2b7508a.0",
4
4
  "description": "Quenty's Ragdoll system for Roblox - Floppy fun ragdolls",
5
5
  "keywords": [
6
6
  "Roblox",
@@ -25,39 +25,39 @@
25
25
  "Quenty"
26
26
  ],
27
27
  "dependencies": {
28
- "@quenty/adorneedata": "7.16.1-canary.534.c6c59e8.0",
29
- "@quenty/attributeutils": "14.15.1-canary.534.c6c59e8.0",
30
- "@quenty/baseobject": "10.7.2-canary.534.c6c59e8.0",
31
- "@quenty/binder": "14.17.1-canary.534.c6c59e8.0",
32
- "@quenty/brio": "14.15.1-canary.534.c6c59e8.0",
33
- "@quenty/camera": "14.18.3-canary.534.c6c59e8.0",
28
+ "@quenty/adorneedata": "7.17.0",
29
+ "@quenty/attributeutils": "14.16.0",
30
+ "@quenty/baseobject": "10.8.0",
31
+ "@quenty/binder": "14.18.0",
32
+ "@quenty/brio": "14.16.0",
33
+ "@quenty/camera": "14.19.0",
34
34
  "@quenty/cancellabledelay": "3.5.0",
35
- "@quenty/characterutils": "12.16.1-canary.534.c6c59e8.0",
36
- "@quenty/draw": "7.7.2-canary.534.c6c59e8.0",
35
+ "@quenty/characterutils": "12.17.0",
36
+ "@quenty/draw": "7.8.0",
37
37
  "@quenty/enumutils": "3.4.0",
38
38
  "@quenty/hapticfeedbackutils": "3.2.0",
39
- "@quenty/instanceutils": "13.15.1-canary.534.c6c59e8.0",
40
- "@quenty/loader": "10.7.2-canary.534.c6c59e8.0",
39
+ "@quenty/instanceutils": "13.16.0",
40
+ "@quenty/loader": "10.8.0",
41
41
  "@quenty/maid": "3.4.0",
42
- "@quenty/motor6d": "7.18.2-canary.534.c6c59e8.0",
43
- "@quenty/physicsutils": "8.15.1-canary.534.c6c59e8.0",
44
- "@quenty/playerhumanoidbinder": "14.17.2-canary.534.c6c59e8.0",
45
- "@quenty/promise": "10.9.1-canary.534.c6c59e8.0",
46
- "@quenty/qframe": "10.9.1-canary.534.c6c59e8.0",
47
- "@quenty/r15utils": "13.15.1-canary.534.c6c59e8.0",
48
- "@quenty/remoting": "12.16.1-canary.534.c6c59e8.0",
49
- "@quenty/rx": "13.15.1-canary.534.c6c59e8.0",
50
- "@quenty/rxbinderutils": "14.17.1-canary.534.c6c59e8.0",
51
- "@quenty/rxsignal": "7.15.1-canary.534.c6c59e8.0",
52
- "@quenty/spring": "10.7.2-canary.534.c6c59e8.0",
42
+ "@quenty/motor6d": "7.19.0",
43
+ "@quenty/physicsutils": "8.16.0",
44
+ "@quenty/playerhumanoidbinder": "14.18.0",
45
+ "@quenty/promise": "10.10.0",
46
+ "@quenty/qframe": "10.10.0",
47
+ "@quenty/r15utils": "13.16.0",
48
+ "@quenty/remoting": "12.17.0",
49
+ "@quenty/rx": "13.16.0",
50
+ "@quenty/rxbinderutils": "14.18.0",
51
+ "@quenty/rxsignal": "7.16.0",
52
+ "@quenty/spring": "10.8.0",
53
53
  "@quenty/steputils": "3.5.2",
54
54
  "@quenty/table": "3.7.0",
55
- "@quenty/tie": "10.18.2-canary.534.c6c59e8.0",
56
- "@quenty/valuebaseutils": "13.15.1-canary.534.c6c59e8.0",
57
- "@quenty/valueobject": "13.15.1-canary.534.c6c59e8.0"
55
+ "@quenty/tie": "10.19.0",
56
+ "@quenty/valuebaseutils": "13.16.0",
57
+ "@quenty/valueobject": "13.16.0"
58
58
  },
59
59
  "publishConfig": {
60
60
  "access": "public"
61
61
  },
62
- "gitHead": "c6c59e8e4b98466955aafe50473027d316ab4ac7"
62
+ "gitHead": "2b7508aab3b39c8973a44af98377c61d53d2e647"
63
63
  }
@@ -26,94 +26,94 @@ local RagdollMotorUtils = {}
26
26
 
27
27
  local R6_MOTORS = {
28
28
  {
29
- partName = "Torso";
30
- motorName = "Root";
31
- isRootJoint = true;
32
- };
29
+ partName = "Torso",
30
+ motorName = "Root",
31
+ isRootJoint = true,
32
+ },
33
33
  {
34
- partName = "Torso";
35
- motorName = "Neck";
36
- };
34
+ partName = "Torso",
35
+ motorName = "Neck",
36
+ },
37
37
  {
38
- partName = "Torso";
39
- motorName = "Left Shoulder";
40
- };
38
+ partName = "Torso",
39
+ motorName = "Left Shoulder",
40
+ },
41
41
  {
42
- partName = "Torso";
43
- motorName = "Right Shoulder";
44
- };
42
+ partName = "Torso",
43
+ motorName = "Right Shoulder",
44
+ },
45
45
  {
46
- partName = "Torso";
47
- motorName = "Left Hip";
48
- };
46
+ partName = "Torso",
47
+ motorName = "Left Hip",
48
+ },
49
49
  {
50
- partName = "Torso";
51
- motorName = "Right Hip";
52
- };
50
+ partName = "Torso",
51
+ motorName = "Right Hip",
52
+ },
53
53
  }
54
54
 
55
55
  local R15_MOTORS = {
56
56
  {
57
- partName = "LowerTorso";
58
- motorName = "Root";
59
- isRootJoint = true;
60
- };
57
+ partName = "LowerTorso",
58
+ motorName = "Root",
59
+ isRootJoint = true,
60
+ },
61
61
  {
62
- partName = "UpperTorso";
63
- motorName = "Waist";
64
- };
62
+ partName = "UpperTorso",
63
+ motorName = "Waist",
64
+ },
65
65
  {
66
- partName = "Head";
67
- motorName = "Neck";
68
- };
66
+ partName = "Head",
67
+ motorName = "Neck",
68
+ },
69
69
  {
70
- partName = "LeftUpperArm";
71
- motorName = "LeftShoulder";
72
- };
70
+ partName = "LeftUpperArm",
71
+ motorName = "LeftShoulder",
72
+ },
73
73
  {
74
- partName = "LeftLowerArm";
75
- motorName = "LeftElbow";
76
- };
74
+ partName = "LeftLowerArm",
75
+ motorName = "LeftElbow",
76
+ },
77
77
  {
78
- partName = "LeftHand";
79
- motorName = "LeftWrist";
80
- };
78
+ partName = "LeftHand",
79
+ motorName = "LeftWrist",
80
+ },
81
81
  {
82
- partName = "RightUpperArm";
83
- motorName = "RightShoulder";
84
- };
82
+ partName = "RightUpperArm",
83
+ motorName = "RightShoulder",
84
+ },
85
85
  {
86
- partName = "RightLowerArm";
87
- motorName = "RightElbow";
88
- };
86
+ partName = "RightLowerArm",
87
+ motorName = "RightElbow",
88
+ },
89
89
  {
90
- partName = "RightHand";
91
- motorName = "RightWrist";
92
- };
90
+ partName = "RightHand",
91
+ motorName = "RightWrist",
92
+ },
93
93
  {
94
- partName = "LeftUpperLeg";
95
- motorName = "LeftHip";
96
- };
94
+ partName = "LeftUpperLeg",
95
+ motorName = "LeftHip",
96
+ },
97
97
  {
98
- partName = "LeftLowerLeg";
99
- motorName = "LeftKnee";
100
- };
98
+ partName = "LeftLowerLeg",
99
+ motorName = "LeftKnee",
100
+ },
101
101
  {
102
- partName = "LeftFoot";
103
- motorName = "LeftAnkle";
104
- };
102
+ partName = "LeftFoot",
103
+ motorName = "LeftAnkle",
104
+ },
105
105
  {
106
- partName = "RightUpperLeg";
107
- motorName = "RightHip";
108
- };
106
+ partName = "RightUpperLeg",
107
+ motorName = "RightHip",
108
+ },
109
109
  {
110
- partName = "RightLowerLeg";
111
- motorName = "RightKnee";
112
- };
110
+ partName = "RightLowerLeg",
111
+ motorName = "RightKnee",
112
+ },
113
113
  {
114
- partName = "RightFoot";
115
- motorName = "RightAnkle";
116
- };
114
+ partName = "RightFoot",
115
+ motorName = "RightAnkle",
116
+ },
117
117
  }
118
118
 
119
119
  local ROOT_JOINT_CACHE = {}
@@ -193,19 +193,12 @@ function RagdollMotorUtils.setupRagdollRootPartMotor(motor, part0, part1)
193
193
 
194
194
  -- Inserted C1/C0 here
195
195
  weldMaid:GiveTask(Rx.combineLatest({
196
- C0 = RxInstanceUtils.observeProperty(motor, "C0");
197
- Transform = RxInstanceUtils.observeProperty(transformValue, "Value");
196
+ C0 = RxInstanceUtils.observeProperty(motor, "C0"),
197
+ Transform = RxInstanceUtils.observeProperty(transformValue, "Value"),
198
198
  }):Subscribe(function(innerState)
199
199
  weld.C0 = innerState.C0 * innerState.Transform
200
200
  end))
201
201
 
202
- if weld:IsA("Motor6D") then
203
- -- Suppress animations on any weld connection
204
- weldMaid:GiveTask(RunService.Stepped:Connect(function()
205
- weld.Transform = CFrame.new()
206
- end))
207
- end
208
-
209
202
  weldMaid:GiveTask(RxInstanceUtils.observeProperty(motor, "C1"):Subscribe(function(c1)
210
203
  weld.C1 = c1
211
204
  end))
@@ -225,18 +218,8 @@ function RagdollMotorUtils.setupRagdollRootPartMotor(motor, part0, part1)
225
218
  maid._weld = setupWeld("Weld")
226
219
  end
227
220
 
228
- maid:GiveTask(ragdollMotorData.RagdollSpringReturnSpeed:Observe()
229
- :Subscribe(function(speed)
230
- lastTransformSpring.s = speed
231
- end))
232
-
233
- -- Lerp smoothly to 0 to avoid jarring camera.
234
- maid:GiveTask(RunService.Stepped:Connect(function()
235
- local target = QFrame.toCFrame(lastTransformSpring.p)
236
- if target then
237
- transformValue.Value = target
238
- motor.Transform = target
239
- end
221
+ maid:GiveTask(ragdollMotorData.RagdollSpringReturnSpeed:Observe():Subscribe(function(speed)
222
+ lastTransformSpring.s = speed
240
223
  end))
241
224
 
242
225
  motor.Enabled = false
@@ -280,12 +263,12 @@ function RagdollMotorUtils.suppressJustRootPart(character, rigType)
280
263
  local ragdollMotorData = RagdollMotorData:Create(motor)
281
264
 
282
265
  return Rx.combineLatest({
283
- motor = motor;
284
- part0 = RxInstanceUtils.observeProperty(motor, "Part0");
285
- part1 = RxInstanceUtils.observeProperty(motor, "Part1");
286
- isAnimated = ragdollMotorData.IsMotorAnimated:Observe();
266
+ motor = motor,
267
+ part0 = RxInstanceUtils.observeProperty(motor, "Part0"),
268
+ part1 = RxInstanceUtils.observeProperty(motor, "Part1"),
269
+ isAnimated = ragdollMotorData.IsMotorAnimated:Observe(),
287
270
  })
288
- end);
271
+ end),
289
272
  })
290
273
 
291
274
  local topMaid = Maid.new()
@@ -324,12 +307,12 @@ function RagdollMotorUtils.suppressMotors(character, rigType, velocityReadings)
324
307
  local ragdollMotorData = RagdollMotorData:Create(motor)
325
308
 
326
309
  return RxBrioUtils.flatCombineLatest({
327
- motor = motor;
328
- part0 = RxInstanceUtils.observeProperty(motor, "Part0");
329
- part1 = RxInstanceUtils.observeProperty(motor, "Part1");
330
- isAnimated = ragdollMotorData.IsMotorAnimated:Observe();
310
+ motor = motor,
311
+ part0 = RxInstanceUtils.observeProperty(motor, "Part0"),
312
+ part1 = RxInstanceUtils.observeProperty(motor, "Part1"),
313
+ isAnimated = ragdollMotorData.IsMotorAnimated:Observe(),
331
314
  })
332
- end);
315
+ end),
333
316
  })
334
317
 
335
318
  topMaid:GiveTask(observable:Subscribe(function(brio)
@@ -348,7 +331,8 @@ function RagdollMotorUtils.suppressMotors(character, rigType, velocityReadings)
348
331
  motorMaid._current = RagdollMotorUtils.setupAnimatedMotor(character, state.part1)
349
332
  else
350
333
  if data.isRootJoint then
351
- motorMaid._current = RagdollMotorUtils.setupRagdollRootPartMotor(state.motor, state.part0, state.part1)
334
+ motorMaid._current =
335
+ RagdollMotorUtils.setupRagdollRootPartMotor(state.motor, state.part0, state.part1)
352
336
  else
353
337
  motorMaid._current = RagdollMotorUtils.setupRagdollMotor(state.motor, state.part0, state.part1)
354
338
  end
@@ -417,10 +401,10 @@ function RagdollMotorUtils.promiseVelocityRecordings(character, rigType)
417
401
  local part1 = motor.Part1
418
402
  if part0 and part1 then
419
403
  parts[data] = {
420
- motor = motor;
421
- part0 = part0;
422
- part1 = part1;
423
- relCFrame = initialRootPartCFrame:toObjectSpace(part1.CFrame);
404
+ motor = motor,
405
+ part0 = part0,
406
+ part1 = part1,
407
+ relCFrame = initialRootPartCFrame:toObjectSpace(part1.CFrame),
424
408
  }
425
409
  end
426
410
  end
@@ -434,9 +418,9 @@ function RagdollMotorUtils.promiseVelocityRecordings(character, rigType)
434
418
  local newRootPartCFrame = rootPart.CFrame
435
419
 
436
420
  local result = {
437
- readingTimePhysics = time();
438
- linear = {};
439
- rotation = {};
421
+ readingTimePhysics = time(),
422
+ linear = {},
423
+ rotation = {},
440
424
  }
441
425
 
442
426
  for data, info in pairs(parts) do
@@ -445,7 +429,7 @@ function RagdollMotorUtils.promiseVelocityRecordings(character, rigType)
445
429
  -- Validate all the same
446
430
  if info.motor == motor and info.part0 == motor.Part0 and info.part1 == motor.Part1 then
447
431
  local linear = newRootPartCFrame:pointToObjectSpace(info.part1.Position) - info.relCFrame.p
448
- result.linear[data] = newRootPartCFrame:vectorToWorldSpace(linear/dt)
432
+ result.linear[data] = newRootPartCFrame:vectorToWorldSpace(linear / dt)
449
433
 
450
434
  local change = info.relCFrame:toObjectSpace(newRootPartCFrame:toObjectSpace(info.part1.CFrame))
451
435
 
@@ -453,7 +437,7 @@ function RagdollMotorUtils.promiseVelocityRecordings(character, rigType)
453
437
  local x, y, z = change:ToEulerAnglesXYZ()
454
438
 
455
439
  local vector = newRootPartCFrame:vectorToWorldSpace(Vector3.new(x, y, z))
456
- result.rotation[data] = vector/dt
440
+ result.rotation[data] = vector / dt
457
441
  end
458
442
  end
459
443
 
@@ -473,4 +457,4 @@ function RagdollMotorUtils.yieldUntilStepped()
473
457
  return dt
474
458
  end
475
459
 
476
- return RagdollMotorUtils
460
+ return RagdollMotorUtils