I just started scripting and every time I make something I keep thinking is there a way to make this shorter or more efficient and because I don't have much knowledge about it I can't answer it, Here's a script I made for a basic dropper and furnace.
Leaderstats:
game.Players.PlayerAdded:Connect(function(Player) local leaderstats = Instance.new("Folder",Player) leaderstats.Name = "leaderstats" local Money = Instance.new("IntValue",leaderstats) Money.Name = "Money" local HasTycoon = Instance.new("BoolValue",Player) HasTycoon.Name = "HasTycoon" end)
Gate:
local Door = script.Parent Door.Touched:Connect(function(Hit) if Hit.Parent:FindFirstChild("Humanoid") then local Player = game.Players:GetPlayerFromCharacter(Hit.Parent) if not Player.HasTycoon.Value then local Owner = Instance.new("StringValue",game.Workspace.Tycoon) Owner.Name = "Owner" Owner.Value = Player.Name Door.Transparency = 1 Door.CanCollide = false Player.HasTycoon.Value = true Door.Parent.BillboardGui.TextLabel.Text = ("Owner: "..Player.Name) end end end)
Dropper
local Button = script.Parent local ClickDetector = Button.ClickDetector local Owner = game.Workspace.Tycoon:WaitForChild("Owner") local Debounce = false ClickDetector.MouseClick:Connect(function(Player) if not Debounce then if Owner.Value == Player.Name then Debounce = true Button.BrickColor = BrickColor.new("Camo") local Ore = Instance.new("Part",game.Workspace.Tycoon.StarterMine.StarterMineOres) Ore.Name = "Ore" Ore.BrickColor = BrickColor.new("Fossil") Ore.Material = "DiamondPlate" Ore.Size = Vector3.new(2,2,2) Ore.Position = Vector3.new(Button.Parent.Dropper.Position.X,Button.Parent.Dropper.Position.Y - 2,Button.Parent.Dropper.Position.Z) wait(0.3) Debounce = false Button.BrickColor = BrickColor.new("Lime green") end end end)
Conveyor Belt:
local ConveyorSpeed = game.Workspace.Tycoon.Purchases.ConveyorSpeed local ConveyorBelt = script.Parent while wait() do ConveyorBelt.Velocity = ConveyorBelt.CFrame.lookVector * ConveyorSpeed.Value end
Furnace:
local Lava = script.Parent local Owner = game.Workspace.Tycoon:WaitForChild("Owner") Lava.Touched:Connect(function(Ore) if Ore.Parent == game.Workspace.Tycoon.StarterMine.StarterMineOres then Ore:Destroy() game.Players[Owner.Value].leaderstats.Money.Value = game.Players[Owner.Value].leaderstats.Money.Value + 1 end end)