Code Snippets: Difference between revisions
From Goodblox Wiki
Jump to navigationJump to search
Pizzaboxer (talk | contribs) No edit summary |
Pizzaboxer (talk | contribs) No edit summary |
||
| Line 263: | Line 263: | ||
script.Parent.Touched:connect(ont) | script.Parent.Touched:connect(ont) | ||
[[Category:Scripting Tutorials]] | |||
Latest revision as of 16:26, 22 June 2020
Introduction
Below are common codes used in scripts. You can use these in your scripts, or to learn from them.
Random Number
Generates a random number between 3 and 9 inclusively:
math.random(3,9)
Create an Explosion
The following function creates an explosion at a given position in 3D space.
function createExplosion(position)
explosion = Instance.new("Explosion")--Creates The Explosion.
explosion.Position = position --Where The Explosion Is.
explosion.Parent = game.Workspace --Puts the explosion in the game.
end
To create an explosion at (0, 100, 0), for example, you would do:
createExplosion(Vector3.new(0,100,0))
Create a Deadly brick
The following script kills any humanoid that touches it.
function onTouched(hit)
local human = hit.Parent:FindFirstChild("Humanoid")
--Basically this just checks to see if it is a real player touching this brick.
if (human ~= nil) then --If it is a real player, then DESTROY THEM!
human.Health = 0 --Your Health Is Now 0.
end
end
if (script.Parent ~= nil) and (script.Parent.className == "Part") then --Work if in a block
connection = script.Parent.Touched:connect(onTouched)
end
Color Changing
Changes colors indefinitely.
while true do script.Parent.Color = Color3.new(math.random(), math.random(), math.random()) wait(0.5) --Waits 1/2 a second till swapping to a random color. end
Healing Potion
Ready-to-go script. Add it onto a block, and it activates on touch.
power = 10 --How fast you want to heal people.
function onTouched(part)
local h = part.Parent:FindFirstChild("Humanoid")
if h~=nil then
h.Health = h.Health + power
end
end
script.Parent.Touched:connect(onTouched) --If touched, then run.
Regeneration
You can use this script, just put it into the Workspace, not a brick or model. Just change the "MyModelName" with the name of your model.
model = game.Workspace.MyModelName --Replace the 'MyModelName' with the name of your model.
messageText = "Regenerating MyModelName..." --And replace it here!
message = Instance.new("Message")--Make a Message
message.Text = messageText
backup = model:clone()--Got to Make A Back-Up.
while true do --This Makes It Continuous
wait(300) --How long till regeneration.
message.Parent = game.Workspace --The Message Should Show To Everyone
model:remove()
wait(4) -- display regen message for 4 seconds
model = backup:clone() --Clone the Back-up To Make Another One
model.Parent = game.Workspace --You Got To See It Right?
model:makeJoints() --Make Sure It Doesn't Fall Apart.
message.Parent = nil --clears message
end
Regeneration-In-Model Script
- Name Regeneration-In-Model Script
- Type You put this regeneration script inside a MODEL, NOT the workspace.
- Author Furnace
model = script.Parent
backup = model:Clone()
regentime = 300 --5 minutes
message = Instance.new("Message")
message.Text = "Regenerating ".. model.Name.. "..."
if (model ~= game.Workspace) then
while true do
wait(regentime)
m = message:Clone()
m.Parent = game.Workspace
wait(1)
model:remove()
model = backup:Clone()
wait(3)
model.Parent = game.Workspace
model:MakeJoints()
m.Parent = nil
end
end
Anti-Flying Script
- Name Anti-flying script
- Type Cheating prevention script for those who hate flyers.
- Author Gamer3D
- Description This script blasts flyers out of the sky. When it is placed in a brick to protect and it's sensitivity is adjusted, it will kill flyers, and leave plain loiterers alone.
- This script is outdated, you can no longer use the flying bug.
- Code
tracked = nil -- Keep track of checked players so we don't blow up plain loiterers
trackedPosition = nil
sensitivity = 1 -- 1 is normal. Higher values indicate higher sensitivity
function checkIfFlyer(player, brick, slot)
local relativePos = brick.Position - player.Character.PrimaryPart.Position
if (relativePos.magnitude < 4 * sensitivity) then -- Brick is within normal distance for flying
if (relativePos.y > -2 * sensitivity) and (relativePos.y < sensitivity) then -- Brick is at a good height for flying
if tracked = player then
local moveDist = player.Character.PrimaryPart.Position - trackedPosition
if (moveDist.magnitude * sensitivity > 8) then -- Player moved away, but kept brick. Almost certainly a flyer.
return true
end
end
tracked = player
trackedPosition = player.PrimaryPart.Position
end
end
return false
end
function makeExplosion(Pos) -- Blow up
local myExplosion = Instance.new("Explosion")
myExplosion.Position = Pos
myExplosion.Parent = game.Workspace
end
-- Main loop
playerList = game.Players:children()
brickList = nil
while true do
if (script.Parent.className == "Part") then
for i = 1, #playerList do
if checkIfFlyer(playerList[i], script.Parent, 1) then
wait(0.5)
makeExplosion(script.Parent.Position)
end
end
playerList = game.Players:children() -- Keep track of new players too
end
if (#PlayerList == 0) then -- No sense bogging anything down.
wait(10)
end
if (#playerList > 0) then
wait(2)
end
end
Talky Regeneration
- Name TalkyRegenScript
- Type Regens a model
- Author matrix35
- Description Regens a model by saying a word
- Notes (in script)
- Code
model = game.Workspace.Model -- The model to regenerate. Change Model to the models name backup = model:clone() -- clones the model function onChatted(msg, recipient, speaker) local source = string.lower(speaker.Name) msg = string.lower(msg) if (msg == "regen") then -- The word you want people to say to regen it. change it model:remove() --removes the model model = backup:clone() --clones the model model.Parent = game.Workspace -- makes the parent the Workspac model:makeJoints() -- generates the model end end function onPlayerEntered(newPlayer) newPlayer.Chatted:connect(function(msg, recipient) onChatted(msg, recipient, newPlayer) end) end game.Players.ChildAdded:connect(onPlayerEntered) -- When you are done editing this, save this place then go to it then say the word to regenerate the model.
Turn all your bricks a certain color
- Name Unknown
- Type
- Author Unknown
- Description
- Notes Put script in Workspace
- Code
function turnBlack(where)
local ch=where:GetChildren() --note that we need local; see below
local i = 0
for i = 1, #ch do -- one number for each "child"
if #ch[i]:GetChildren()>0 then turnBlack(ch[i]) end -- when to stop this loop
if ch[i].className=="Part" or ch[i].className=="Seat" or ch[i].className=="SpawnLocation" then ch[i].BrickColor=BrickColor.new("Black") end -- what specific objects to change colors (e.g., bricks, not cameras)
end
end
turnBlack(game.Workspace)
What color is this brick?
- Name What color is this brick?
- Type
- Author Unknown
- Description
- Notes Put script in brick
- Code
function onTouched(hit)
c=script.Parent.BrickColor
if c==BrickColor.new("Bright red") then
print("it's red!")
else
print("It's not red.")
end
end
script.Parent.Touched:connect(onTouched)
Random Messages
- Note: This will select a random message from your prewritten group of messages and print it out.
local randommessages = {"Sample message 1", "Sample message 2", "Sample message 3", "Sample message 4", "Sample message 5", "Sample message 6"}
local rndmsg = math.random(1, 6)
--Random number between 1, and the number of items in the table
print(randommessages[rndmsg])
Simple Breaking Ice
When the brick inside gets touched, it has a 3 in 5 chance for breaking for a moment.
- Name Ice
- Type Random number usage
- Author WhoKnows OR main account TheName, WhoKnowsAndTheName on wiki.
- Description
- Notes Put script in brick
- Code
function ont(hit)
hum = hit.Parent:findFirstChild("Humanoid")
if (hum ~= nil) then
mn = math.random(1, 5)
if (mn ~= 3) and (mn ~= 4) and (mn ~= 2) then
print(mn)
else
print(mn)
script.Parent.Transparency = 1
script.Parent.CanCollide = false
wait(0.5)
script.Parent.Transparency = 0.5
script.Parent.CanCollide = true
end
end
end
script.Parent.Touched:connect(ont)