Advertisement
Guest User

Undertale Save Point Script

a guest
May 25th, 2022
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.28 KB | None | 0 0
  1. -- [Save Point] --
  2.  
  3. -- Based on the functionality of the Save Points seen in the game Undertale.
  4.  
  5. -- Everything in this script is written by Tsuagon (except for the parts that were converted by ttyyuu12345's model to script converter plugin).
  6.  
  7. ----------------------------------------------------------------------------------------------------
  8.  
  9. -- Player Stuff --
  10.  
  11. local player = game:GetService("Players").LocalPlayer
  12. local char = player.Character
  13. local head = char.Head
  14. local torso = char:FindFirstChild("Torso") or char:FindFirstChild("UpperTorso")
  15. local root = char.HumanoidRootPart
  16. local humanoid = char.Humanoid
  17.  
  18. local mouse = player:GetMouse()
  19.  
  20. ----------------------------------------------------------------------------------------------------
  21.  
  22. -- General Stuff --
  23.  
  24. local tweenservice = game:GetService("TweenService")
  25. script.Parent = game:GetService("StarterPlayer").StarterPlayerScripts
  26.  
  27. saved = false
  28. savepointspawned = false
  29. reloaded = false
  30.  
  31. -- Visual Effects
  32.  
  33. local savelight = Instance.new("ColorCorrectionEffect")
  34. savelight.TintColor = Color3.new(1, 1, 1)
  35. savelight.Brightness = 0
  36. savelight.Enabled = true
  37. savelight.Parent = game:GetService("Lighting")
  38.  
  39. -- Save Point Model
  40.  
  41. local savepointpart = Instance.new("Part") --Converted with ttyyuu12345's model to script plugin v4
  42. savepointpart.Name = "Save Point"
  43. savepointpart.Parent = workspace
  44. savepointpart.Rotation = Vector3.new(-180, 0, -180)
  45. savepointpart.Transparency = 1
  46. savepointpart.Size = Vector3.new(2.6960220336914062, 2.6418802738189697, 0.001)
  47. savepointpart.Material = Enum.Material.SmoothPlastic
  48. savepointpart.Anchored = true
  49. savepointpart.CanCollide = false
  50. savepointpart.Massless = true
  51.  
  52. local savepoint1decal = Instance.new("Decal")
  53. savepoint1decal.Name = "SavePoint1"
  54. savepoint1decal.Parent = savepointpart
  55. savepoint1decal.Texture = "rbxassetid://9724977951"
  56. savepoint1decal.Transparency = 1
  57. savepoint1decal.Face = Enum.NormalId.Front
  58.  
  59. local savepoint2decal = Instance.new("Decal")
  60. savepoint2decal.Name = "SavePoint2"
  61. savepoint2decal.Parent = savepointpart
  62. savepoint2decal.Texture = "rbxassetid://9724980695"
  63. savepoint2decal.Transparency = 1
  64. savepoint2decal.Face = Enum.NormalId.Front
  65.  
  66. local savepointlight = Instance.new("PointLight")
  67. savepointlight.Parent = savepointpart
  68. savepointlight.Color = Color3.new(1, 1, 0)
  69. savepointlight.Brightness = 0
  70.  
  71. local savepoint1decalalt = Instance.new("Decal")
  72. savepoint1decalalt.Name = "SavePoint1Alt"
  73. savepoint1decalalt.Parent = savepointpart
  74. savepoint1decalalt.Texture = "rbxassetid://9724977951"
  75. savepoint1decalalt.Transparency = 1
  76. savepoint1decalalt.Face = Enum.NormalId.Back
  77.  
  78. local savepoint2decalalt = Instance.new("Decal")
  79. savepoint2decalalt.Name = "SavePoint2Alt"
  80. savepoint2decalalt.Parent = savepointpart
  81. savepoint2decalalt.Texture = "rbxassetid://9724980695"
  82. savepoint2decalalt.Transparency = 1
  83. savepoint2decalalt.Face = Enum.NormalId.Back
  84.  
  85. local savepointclickdectector = Instance.new("ClickDetector")
  86. savepointclickdectector.Parent = savepointpart
  87.  
  88. -- Sounds
  89.  
  90. local savesound = Instance.new("Sound", savepointpart)
  91. savesound.Volume = 5
  92. savesound.SoundId = "rbxassetid://4613871802"
  93.  
  94. ----------------------------------------------------------------------------------------------------
  95.  
  96. -- Main Script --
  97.  
  98. function save()
  99.     local currentposition = root.CFrame
  100.     if saved == true then return end
  101.     if savepointspawned == true then return end
  102.    
  103.     savepointspawned = true
  104.     savepointpart.CFrame = torso.CFrame * CFrame.new(0, 0, -5.5)
  105.    
  106.     coroutine.resume(coroutine.create(function()
  107.         tweenservice:Create(savepoint1decal, TweenInfo.new(0.5), {Transparency = 0}):Play();
  108.         tweenservice:Create(savepoint1decalalt, TweenInfo.new(0.5), {Transparency = 0}):Play();
  109.         tweenservice:Create(savepointlight, TweenInfo.new(0.5), {Brightness = 11.42}):Play();
  110.     end))
  111.  
  112.     savepointclickdectector.MouseClick:Connect(function()
  113.         saved = true
  114.         savepointspawned = false
  115.         savesound:Play()
  116.         coroutine.resume(coroutine.create(function()
  117.             tweenservice:Create(savepoint1decal, TweenInfo.new(0.5), {Transparency = 1}):Play();
  118.             tweenservice:Create(savepoint1decalalt, TweenInfo.new(0.5), {Transparency = 1}):Play();
  119.             tweenservice:Create(savepointlight, TweenInfo.new(0.5), {Brightness = 0}):Play();
  120.         end))
  121.     end)
  122.     repeat
  123.         savepoint1decal.Transparency = 1
  124.         savepoint2decal.Transparency = 0
  125.         savepoint1decalalt.Transparency = 1
  126.         savepoint2decalalt.Transparency = 0
  127.         wait(0.3)
  128.         savepoint1decal.Transparency = 0
  129.         savepoint2decal.Transparency = 1
  130.         savepoint2decalalt.Transparency = 1
  131.         savepoint1decalalt.Transparency = 0
  132.         wait(0.3)
  133.     until saved == true
  134.     function reload()
  135.         if saved == false then return end
  136.         coroutine.resume(coroutine.create(function()
  137.             tweenservice:Create(savelight, TweenInfo.new(1.5), {TintColor = Color3.new(1, 1, 0.498039)}):Play();
  138.             tweenservice:Create(savelight, TweenInfo.new(1.5), {Brightness = 5}):Play();
  139.             wait(0.5)
  140.             tweenservice:Create(savelight, TweenInfo.new(0.5), {Brightness = 0}):Play();
  141.             tweenservice:Create(savelight, TweenInfo.new(0.5), {TintColor = Color3.new(1, 1, 1)}):Play();
  142.         end))
  143.         saved = false
  144.         root.CFrame = currentposition
  145.     end
  146. end
  147.  
  148.  
  149. mouse.KeyDown:Connect(function(key)
  150.     if key == "q" and saved == false then
  151.         save()
  152.     elseif key == "q" and saved == true then
  153.         reload()
  154.     end
  155. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement