Ok Should I turn on my GlobalShadows or no?
because this game was made for kids and mostly kids likes bright map
You should turn on shadows. I know kids like bright maps, but it just looks really bad without shadows.
Sounds fit for a tower obby game. Nice work.
Which software did you use?
Unmarked 2015 Dodge Challenger SRT Hellcat SSV
Custom Vehicle, made for a friend!
(I am aware of the low quality video, I don’t know if it’s caused by my recorder or streamable compression
I really want to get into scripting on Roblox and programming as a whole. Since I’m also passionate about UI and graphics, I figured why not start with some simple tweens!
I love how this looks! Im excited to see what this is!
P Sick me thinks
my first time making npcs. i think this is a success
A Discord Bot.
I would post the Discord Bot Invite link here but I don’t know if im allowed to.
ok thanks
I will try find a way to turn on shadows but kids still like it
Hello fello developers!
My 1 year anniversary of development! (I JUST REALISED THAT IT WAS ACTUALLY ON JULY!!! 1 month too early)
First actual rendered animation as well!
First time also creating a watermark, (not that great but it will do.)
Whoops I was 1 month too early, It was actually meant to be July! so I made this to celebrate.
I haven’t posted in awhile due to my laptop having problems and it had to get wiped out and I had no backup files. Luckily they were able get some of my stuff but allot of it is corrupted and my blender files are still being fixed. (All of them since I first started using blender a year ago.) Sadly this includes my best one yet which I finally finished creating. Any way there is no time to be moping around, I should instead be focusing on getting backup files this time and working towards a good new productive learning year.
Here is also a photo I found on my phone of one of my blender files which I made a month ago before it got corrupted. (sorry for the bad quality)
Been messing around with scripts:
Original - Decent, but not the best: 128 lines
local nameplate = script.Parent:WaitForChild("Name Plate")
local lv = script.Parent.LV
local EnemyName = script.Parent.EnemyName
local AI = script.Parent.AI.Value
local Anchor = script.Parent.Anchor.Value
local caught = false
local humanoid = script.Parent.Parent.Humanoid
local HopTrack = humanoid:LoadAnimation(humanoid.Hop)
local random = Random.new()
local debounce = true
local target = false
repeat wait(0) until HopTrack.Length ~= 0
nameplate.TextLabel.Text = EnemyName.Value .. " Lv. " .. lv.Value
if AI == "Passive" then
while not caught do
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 30 then
humanoid:MoveTo(Anchor.Position,Anchor)
humanoid.MoveToFinished:Wait()
else
humanoid:MoveTo(Vector3.new(Anchor.Position.X + random:NextNumber(-30,30), Anchor.Position.Y, Anchor.Position.Z + random:NextNumber(-30,30)))
humanoid.MoveToFinished:Wait()
end
wait(0)
end
elseif AI == "Angry" then
wait(5)
script.Parent.Touched:Connect(function(object)
if object.Parent == target and debounce then
debounce = false
object.Parent.Humanoid.Health -= (script.Parent.LV.Value * 5 - (script.Parent.LV.Value/5))
wait(2)
debounce = true
end
end)
while not caught do
local targetdistance = 40
target = nil
for i, v in pairs(game.Players:GetPlayers()) do
local character = v.Character
character:WaitForChild("HumanoidRootPart")
if (character.HumanoidRootPart.Position - script.Parent.Position).Magnitude <= targetdistance then
target = character
targetdistance = (character.HumanoidRootPart.Position - script.Parent.Position).Magnitude
print(v.Name)
end
wait(0)
end
if target then
print("target")
humanoid:MoveTo(target.HumanoidRootPart.Position, target.Humanoid)
if (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude > 20 then
script.Parent.Parent.Humanoid.WalkSpeed = 32
repeat
humanoid:MoveTo(target.HumanoidRootPart.Position, target.Humanoid)
wait(0)
until (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude < 10 or (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude > 30
end
script.Parent.Parent.Humanoid.WalkSpeed = 16
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 60 then
humanoid:MoveTo(Anchor.Position,Anchor)
humanoid.MoveToFinished:Wait()
target = nil
end
else
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 30 then
humanoid:MoveTo(Anchor.Position,Anchor)
humanoid.MoveToFinished:Wait()
else
humanoid:MoveTo(Vector3.new(Anchor.Position.X + random:NextNumber(-30,30), Anchor.Position.Y, Anchor.Position.Z + random:NextNumber(-30,30)))
humanoid.MoveToFinished:Wait()
end
wait(0)
end
wait(0)
end
elseif AI == "Scared" then
wait(5)
target = nil
while not caught do
local targetdistance = 40
target = nil
for i, v in pairs(game.Players:GetPlayers()) do
local character = v.Character
if (character.HumanoidRootPart.Position - script.Parent.Position).Magnitude <= targetdistance then
target = character
targetdistance = (character.HumanoidRootPart.Position - script.Parent.Position).Magnitude
print(v.Name)
end
wait(0)
end
if target then
print("target")
humanoid:MoveTo(target.HumanoidRootPart.CFrame.LookVector*-25, target.Humanoid)
if (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude < 20 then
script.Parent.Parent.Humanoid.WalkSpeed = 32
repeat
humanoid:MoveTo(target.HumanoidRootPart.CFrame.LookVector*-25, target.Humanoid)
wait(0)
until (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude > 20
end
script.Parent.Parent.Humanoid.WalkSpeed = 16
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 120 then
humanoid:MoveTo(Anchor.Position,Anchor)
script.Parent.Parent.Humanoid.WalkSpeed = 64
humanoid.MoveToFinished:Wait()
script.Parent.Parent.Humanoid.WalkSpeed = 16
target = nil
end
else
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 30 then
script.Parent.Parent.Humanoid.WalkSpeed = 64
humanoid:MoveTo(Anchor.Position,Anchor)
humanoid.MoveToFinished:Wait()
script.Parent.Parent.Humanoid.WalkSpeed = 16
else
humanoid:MoveTo(Vector3.new(Anchor.Position.X + random:NextNumber(-30,30), Anchor.Position.Y, Anchor.Position.Z + random:NextNumber(-30,30)))
humanoid.MoveToFinished:Wait()
end
wait(0)
end
wait(0)
end
end
V2 - Trash, Tried to use corutines: 98 lines
local nameplate = script.Parent:WaitForChild("Name Plate")
local lv = script.Parent.LV
local EnemyName = script.Parent.EnemyName
local AI = script.Parent.AI.Value
local Anchor = script.Parent.Anchor.Value
local caught = false
local humanoid = script.Parent.Parent.Humanoid
local HopTrack = humanoid:LoadAnimation(humanoid.Hop)
local random = Random.new()
local debounce = true
local target = false
local ready = false
repeat wait(0) until HopTrack.Length ~= 0
nameplate.TextLabel.Text = EnemyName.Value .. " Lv. " .. lv.Value
local function scan()
local targetdistance = 40
target = nil
print("scanstarted")
for i, v in pairs(game.Players:GetPlayers()) do
local character = v.character
print(v.Name)
character:WaitForChild("HumanoidRootPart")
if (character.HumanoidRootPart.Position - script.Parent.Position).Magnitude <= targetdistance then
target = character
targetdistance = (character.HumanoidRootPart.Position - script.Parent.Position).Magnitude
print(v.Name)
end
wait(0)
if target ~= nil then
ready = true
print(ready)
end
return 1
end
end
while true do
local scanCoro = coroutine.create(scan)
local sus = coroutine.resume(scanCoro)
print("Scan")
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 30 then
humanoid:MoveTo(Anchor.Position,Anchor)
else
humanoid:MoveTo(Vector3.new(Anchor.Position.X + random:NextNumber(-30,30), Anchor.Position.Y, Anchor.Position.Z + random:NextNumber(-30,30)))
end
repeat wait(0) until humanoid.MoveToFinished or ready
repeat
distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 30 then
humanoid:MoveTo(Anchor.Position,Anchor)
else
humanoid:MoveTo(Vector3.new(Anchor.Position.X + random:NextNumber(-30,30), Anchor.Position.Y, Anchor.Position.Z + random:NextNumber(-30,30)))
end
humanoid.MoveToFinished:Wait()
until ready
if target ~= nil then
if AI == "Scared" then
print("target")
humanoid:MoveTo(target.HumanoidRootPart.CFrame.LookVector*-25, target.Humanoid)
if (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude < 20 then
script.Parent.Parent.Humanoid.WalkSpeed = 32
repeat
humanoid:MoveTo(target.HumanoidRootPart.CFrame.LookVector*-25, target.Humanoid)
wait(0)
until (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude > 20
end
script.Parent.Parent.Humanoid.WalkSpeed = 16
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 120 then
humanoid:MoveTo(Anchor.Position,Anchor)
script.Parent.Parent.Humanoid.WalkSpeed = 64
humanoid.MoveToFinished:Wait()
script.Parent.Parent.Humanoid.WalkSpeed = 16
target = nil
end
end
if AI == "Angry" then
print("target")
humanoid:MoveTo(target.HumanoidRootPart.Position, target.Humanoid)
if (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude > 20 then
script.Parent.Parent.Humanoid.WalkSpeed = 32
repeat
humanoid:MoveTo(target.HumanoidRootPart.Position, target.Humanoid)
wait(0)
until (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude < 10 or (target.HumanoidRootPart.Position - script.Parent.Position).Magnitude > 30
end
script.Parent.Parent.Humanoid.WalkSpeed = 16
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 60 then
humanoid:MoveTo(Anchor.Position,Anchor)
humanoid.MoveToFinished:Wait()
target = nil
end
end
end
end
V3 - The best: 105 lines, but you don't get the whole code.
local nameplate = script.Parent:WaitForChild("Name Plate")
local lv = script.Parent.LV
local EnemyName = script.Parent.EnemyName
local AI = script.Parent.AI.Value
local Anchor = script.Parent.Anchor.Value
local humanoid = script.Parent.Parent.Humanoid
local random = Random.new()
local move = false
local target = false
while true do
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 30 then
humanoid:MoveTo(Anchor.Position,Anchor)
else
humanoid:MoveTo(Vector3.new(Anchor.Position.X + random:NextNumber(-30,30), Anchor.Position.Y, Anchor.Position.Z + random:NextNumber(-30,30)))
end
wait(0)
humanoid.MoveToFinished:Connect(function()
move = true
print("true")
end)
for i, v in pairs(game.Players:GetPlayers()) do
local character = v.Character
target = false
repeat
character = v.Character
print("nil")
wait(0)
until character ~= nil
character:WaitForChild("HumanoidRootPart")
local targetdistance = 40
if (character.HumanoidRootPart.Position - script.Parent.Position).Magnitude <= targetdistance then
target = character
targetdistance = (character.HumanoidRootPart.Position - script.Parent.Position).Magnitude
print(v.Name)
end
wait(0)
if move then
move = false
local distance = (Anchor.Position - script.Parent.Position).Magnitude
if distance >= 30 then
humanoid:MoveTo(Anchor.Position,Anchor)
else
humanoid:MoveTo(Vector3.new(Anchor.Position.X + random:NextNumber(-30,30), Anchor.Position.Y, Anchor.Position.Z + random:NextNumber(-30,30)))
end
end
Goal: add good attacks.
More progress on my infinite mining tech demo:
The world never needs resetting and its still performant, even if the world has millions of blocks. X/Z limit of 166,666, depth limit of ~13,000
Biggest server I’ve so far taken a screenshot of: