Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Roblox Tail Script

By: wolfwv on Sep 21st, 2012  |  syntax: None  |  size: 4.78 KB  |  views: 1,001  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. User = script.Parent.Parent.Character
  2. if User.Name == "Wolfwv" then
  3. -------------------------------
  4. --Part Making and Positioning--
  5. -------------------------------
  6. TailParts = {User.Torso}
  7. Welds = {}
  8. for i = 2, 13 do
  9. TailParts[i] = Instance.new("Part", User)
  10. TailParts[i].Name = "TailPart"
  11. TailParts[i].CanCollide = false
  12. TailParts[i].Locked = true
  13. TailParts[i].formFactor = "Symmetric"
  14. TailParts[i].Size = Vector3.new(1, 1, 1)
  15. TailMesh = Instance.new("BlockMesh", TailParts[i])
  16. TailMesh.Name = "TailMesh"
  17. TailMesh.Scale = Vector3.new(0.3 - (i - 1) / 80, 0.3 - (i - 1) / 80, 0.25)
  18. Welds[i - 1] = Instance.new("Weld", TailParts[i])
  19. Welds[i - 1].Part0 = TailParts[i - 1]
  20. Welds[i - 1].Part1 = TailParts[i]
  21. Welds[i - 1].C0 = CFrame.new(0, 0, 0.125)
  22. Welds[i - 1].C1 = CFrame.new(0, 0, -0.125)
  23. if i ~= 13 then
  24. TailDecoration = Instance.new("Part", User)
  25. TailDecoration.Name = "TailPart"
  26. TailDecoration.CanCollide = false
  27. TailDecoration.Locked = true
  28. TailDecoration.formFactor = "Symmetric"
  29. TailDecoration.Size = Vector3.new(1, 1, 1)
  30. TailDecoration.BrickColor = BrickColor.new("Light stone grey")
  31. TailMesh = Instance.new("BlockMesh", TailDecoration)
  32. TailMesh.Name = "TailMesh"
  33. TailMesh.Scale = Vector3.new(0.305 - (i - 1) / 80, 0.1, 0.255)
  34. Weld = Instance.new("Weld", TailDecoration)
  35. Weld.Part0 = TailParts[i]
  36. Weld.Part1 = TailDecoration
  37. Weld.C0 = CFrame.new(0, -0.1, 0)
  38. Weld.C1 = CFrame.new(0, 0, 0)
  39. for e = 1, math.random(0, 1) do
  40. TailStrype = Instance.new("Part", User)
  41. TailStrype.Name = "TailPart"
  42. TailStrype.CanCollide = false
  43. TailStrype.Locked = true
  44. TailStrype.formFactor = "Symmetric"
  45. TailStrype.Size = Vector3.new(1, 1, 1)
  46. TailStrype.BrickColor = BrickColor.new("Dark stone grey")
  47. TailMesh = Instance.new("BlockMesh", TailStrype)
  48. TailMesh.Name = "TailMesh"
  49. TailMesh.Scale = Vector3.new(0.33 - (i - 1) / 80, 0.33 - (i - 1) / 80, 0.05)
  50. Weld = Instance.new("Weld", TailStrype)
  51. Weld.Part0 = TailParts[i]
  52. Weld.Part1 = TailStrype
  53. Weld.C0 = CFrame.new(0, 0, math.random(-10, 10) / 80)
  54. Weld.C1 = CFrame.new(0, 0, 0)
  55. end
  56. end
  57. end
  58. Welds[1].C0 = CFrame.new(0, -1, 0.5)
  59. --------------------
  60. --Part Colloration--
  61. --------------------
  62. for i = 2, 12 do
  63. TailParts[i].BrickColor = BrickColor.new("Light stone grey")
  64. end
  65. TailParts[13].BrickColor = BrickColor.new("Dark stone grey")
  66. -----------------------
  67. --Animation Smoothing--
  68. -----------------------
  69. function TailSmooth(WhereTo0, WhereTo1)
  70. CR0 = CFrame.new(Welds[1].C1:toEulerAnglesXYZ()).p
  71. CR1 = CFrame.new(WhereTo0).p
  72. AddTo0 = (CR1 - CR0) / 20
  73. CR2 = CFrame.new(Welds[7].C1:toEulerAnglesXYZ()).p
  74. CR3 = CFrame.new(WhereTo1).p
  75. AddTo1 = (CR3 - CR2) / 20
  76. for a = 1, 10 do
  77. wait(0.025)
  78. for b = 1, 6 do
  79. Welds[b].C1 = Welds[b].C1 * CFrame.fromEulerAnglesXYZ(AddTo0.x, AddTo0.y + User.Torso.RotVelocity.y / 128, AddTo0.z)
  80. end
  81. for c = 7, 12 do
  82. Welds[c].C1 = Welds[c].C1 * CFrame.fromEulerAnglesXYZ(AddTo1.x, AddTo1.y + User.Torso.RotVelocity.y / 128, AddTo1.z)
  83. end
  84. end
  85. end
  86. ---------------------
  87. --Animation Players--
  88. ---------------------
  89. Variation = math.random(-5, 5) / 80
  90. while true do
  91. wait()
  92. Variation = (Variation + math.random(-5, 5) / 80) / 2
  93. if User.Torso.Velocity.magnitude > 8 then
  94. TailSmooth(Vector3.new(-math.pi / 12 + Variation, math.pi / 9, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 6, 0))
  95. TailSmooth(Vector3.new(-math.pi / 12 + Variation, math.pi / 6, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 12, 0))
  96. TailSmooth(Vector3.new(-math.pi / 12 + Variation, math.pi / 9, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 12, 0))
  97. TailSmooth(Vector3.new(-math.pi / 12 + Variation, -math.pi / 9, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 6, 0))
  98. TailSmooth(Vector3.new(-math.pi / 12 + Variation, -math.pi / 6, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 12, 0))
  99. TailSmooth(Vector3.new(-math.pi / 12 + Variation, -math.pi / 9, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 12, 0))
  100. else
  101. TailSmooth(Vector3.new(-math.pi / 24 + Variation, math.pi / 18, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 12, 0))
  102. TailSmooth(Vector3.new(-math.pi / 24 + Variation, math.pi / 12, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 24, 0))
  103. TailSmooth(Vector3.new(-math.pi / 24 + Variation, math.pi / 18, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 24, 0))
  104. TailSmooth(Vector3.new(-math.pi / 24 + Variation, -math.pi / 18, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 12, 0))
  105. TailSmooth(Vector3.new(-math.pi / 24 + Variation, -math.pi / 12, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, math.pi / 24, 0))
  106. TailSmooth(Vector3.new(-math.pi / 24 + Variation, -math.pi / 18, 0), Vector3.new(math.pi / 9 + math.random(-5, 5) / 20, -math.pi / 24, 0))
  107. end
  108. end
  109. end