Это видео недоступно.
Сожалеем об этом.
Animated Tower Attacks - Tower Defense Tutorial #7
HTML-код
- Опубликовано: 18 авг 2024
- Another longish video with a lot of editing scripts but we bring together everything we've learned over the last few episodes by combining various scripts and getting our towers animating and attacking.
Rig Editor Plugin ► www.roblox.com...
WEBSITE ► gnome.codes/tu...
DISCORD ► / discord
TWITTER ► / gnomecoderblx
TIMESTAMPS►
0:00 Intro
0:32 Rigging and preparing towers
3:02 Creating Animations
6:00 Editing Animation Script
12:50 Removing placeholder animation
14:00 Merging tower scripts
19:15 Attack animations
23:20 Facing enemy
27:57 Outro
Man, for 2+ years I have been looking for a tower defense game tutorial. Every 1-3 weeks I searched for a tutorial... and boom, an amazing tutorial has appeared on youtube! THANK YOU!
Same bro.
wow nice
100% same case for me! Im new to developing and this is walking through the steps and really immersing me into it and Im actually understanding scripting now!
To be honest this has been the best tower defence tutorial I’ve seen on youtube because it’s so much more simple and shorter than the others so keep up the good work I’m looking forward to the lobby and the cash system
Great to hear thank you, more videos on the way!
i think this is one of the few td tutorials, most of the td making videos are dev logs
@@MyNamesAveren true
@@GnomeCode when i try to do the FindNearestTarget function i write it exactly like you did but it doenst work. Can you please explain why? i wrote it like you did i dont understand
edit:i can send you a screen shot
edit2:when i switch the tower to a part it works just fine but when i make the local distance
(target.HumanoidRootPart.Position - newtower.HumanoidRootPart.Position).Magnitude
it just doesnt work but it didnt leave anything in the output
also i set the variable for newtower with all lowercase
@@guyfrommars1110 check the spelling
Great, simple and easy to follow tutorial for beginners!
Edit: i would also say, you upload alot, i don't no any other Roblox Studio Developer on RUclips uploading this quick! Great job GnomeCode! (Both great and fast)
Small tip for people watching:
If you want the tower to face the enemy instantly, in the Tower module script at line 32 (line visible in video on 26:57) remove the "Bodygyro" so it's HumanoidRootPart.CFrame = targetCFrame
Also obiously you will need to change the code at line 54 (line visible in video on 27:22) in the same script:
local CFrame = Instance.new("CFrameValue")
CFrame = Vector3.new(math.huge, math.huge, math.huge)
CFrame = newTower.HumanoidRootPart.CFrame
Great video btw, keep it up man 💪
THANK YOU DUDE I was stuck there I didn't know how to get past that
tysm!
Thanks You I Was Stuck There For 1 day
bro you're a legend tysm
TYSM I was stuck here for 2 days
this man is amazing, i followed a different one previously and it was very hard to follow, this right here is just god-tier. can't wait for this series to be finished
Was it by Boss Metro?
if your attack animations arent working, even if you redid the script 10 times do the following:
1) make sure the idle animation is set to "Idle" in Priority, and the attack animation set to "Action" priority.
2) make sure the idle is looping and the attack isnt.
these helped me fix my animations
thanks you helped me
Can u share ur animations script?
Dude, thanks for the help!
Mine just give me error "Infinite yield possible on 'Workspace.Towers.Pistol:WaitForChild("Animations")'"
@@MarianHere me too
Even though I don't follow along with these tutorials, they still help me learn a lot of stuff about programming I didn't know before. Thanks GnomeCode! :)
Ikr
the only think i learnt is task.wait()
@@BloonPlays lmao
@@BloonPlays same lmao
Let's go, another tutorial!! I'm watching this right now. Thanks gnome!
Notification gang 😎
Yo, this may sound sarcastic, but it was my dream to make a tower defence game, and you made that dream real : ) Thanks so much GnomeCode
thanks so much man this is the best tutorial youtuber i have ever watched, i learnt so many things from just this series alone, i cant wait to do the other ones
Super simple and easy your the best coding YT and I'm exited for the next vid KEEP BEING THE BEST MAN!
If you want your towers to face the enemies instantly
in the part of your tower script, where it says newTower.HumanoidRootPart.BodyGyro.CFrame = targetCFrame, just remove where it says ".BodyGyro"
and yes, that's all you need to do. it's that simple!
this actually fixed my problem.
goated.
the goat
Thanks it fixed it
when i removed where it says ".BodyGyro" another error appeared: ServerScriptService.Main.Tower:58: ServerScriptService.Main.Tower:13: attempt to index nil with 'HumanoidRootPart'. my tower keeps ignoring the enemies after this.
I love this since as a beginner myself i can still edit the scripts and all since i actually understand what and why(he does a great job at explaining). Keep it up!
Awesome, great to hear
@@GnomeCode when i try to do the FindNearestTarget function i write it exactly like you did but it doenst work. Can you please explain why? i wrote it like you did i dont understand
edit:i can send you a screen shot
edit2:when i switch the tower to a part it works just fine but when i make the local distance
(target.HumanoidRootPart.Position - newtower.HumanoidRootPart.Position).Magnitude
it just doesnt work but it didnt leave anything in the output
also i set the variable for newtower with all lowercase
@@guyfrommars1110 Same problem with me, did we ever figure out the problem?
@@guyfrommars1110 did you put the prinary parts
@@GnomeCode gnomecode, this tutorial is too hard for me to understand, the animsaves are too hard for me
Happy new year Gnome! 2021 was a well deserved great year for this channel and am excited for what’s to come!
Yall i deadass dont want to make a td game but i watch these vids ro learn something and enjoy it at the same time, anyways HAPPY NEW YEAR FROM POLAND🇵🇱🇵🇱
Great job dude! This tutorial is amazing and I cannot wait for the next video
That's some pro content. Keep up the good job!
Thank you SO MUCH for all of this work that you are doing just to show us how to make this! This is easily the best tower defense making tutorial on RUclips in my opinion. Whenever I have a problem I can always find an answer! Thank you for this!
6:14 (just to remember from where i have to continue, gtg sleep now)
Also, i know i'm a lil' late but i LOVE these tutorials!
Your video tutorials are the most understandable I've seen right now
Thank you and Happy New Year
These tower defense tutorials are amazing! If you aren’t already planning to, I would suggest thinking about creating a placing system more similar to other tower defense games perhaps, a deck of towers you can place, upgrading your towers, and all the lobby features such as spawning into different maps, buying, equipping, and sorting through your units. If you do continue through this series, I’m sure it’s going to be a huge hit and might inspire a couple more tower defense games to show their faces on Roblox! Super excited to see what you do next, great work as always Gnome :D
P.S. Oh, you can also plan to include interesting mechanics for some of the towers, such as being placed on cliffs, freezing, slowing, etc. Also enemy mechanics such as knocking out or stunning the towers around them. Great work as always!
P.S.S. lol this is brainstorming please don’t get the wrong idea, you don’t have to add any of this I’m just throwing out ideas
XD slow down buddy
Fr slow down. it takes very long to add such things and very hard to do.
it’s brainstorming
cliff towers can easily be done by putting the buildings roof in the folder where all the grass is
@@RichRBLX true, but those towers would also be able to be placed on grass, right? maybe an exclusively cliff tower would work better
if your attack animation merges within the idle one, make sure your attack animation is set priority to Action when you make it, you can edit it later too, if you open it where you create/edit animations
dude you saved me on the last video and now you're saving me again???
Thanks
I just dont get it mine is action priority and its not looped. While my idle animation is looped and set to idle but they still merged
@@lordwigstyle8017 did you find out why?
@@Dylan-db2ol Nope i never found out, i gave up after trying for hours upon hours
EVERYONE!!!! IF the animations STILL merge after setting the priorities and the looping right 1000 times, it's because the attack or idle animation is too short. I tried having an attack animation that was 3 frames and it still merged, so I made it longer and it worked
Happy new year! I have just subscribed to you for being helpful! Thanks for making this series!
If the attack animation and the idle animation overlap, make sure that they both have the same number of frames, ex(30frames in attack and 30frames in idle)
they still overlapped :(, I beleive it has something to do with the animation priorities, such as action and idle, but I can't find the 2 that play both of the full animation
@@Bunanahz Same, I'm still searching as well.
@@Bunanahz im here to save ur day (change idle to movement)
@@squiggleszit's not working there's nothing wrong with my scripts my tower is attacking idk what's the problem I think it's because I'm using motor6D but I made a new r6 rig with the same animations still overlaps
@@daSmokingToilet46 are they both different actions?
For those of you struggling with animations, when he makes the configuration folder you must rename it Animations.
a configuration folder isnt even a thing anymore i cant find it
@@goldenollies8338 It isnt a folder just search up Configuration and rename it to "Animations" for the animations to work properly.
thank you so much bro
can you tell me? I did exactly the same thing, but the attack animation plays endlessly, how did you change this line of code? I'm just curious
@@veaga5893 In the video your config folder must be named "Animations", in the video he cuts ahead to him just making a new one when his is already there.
Hey GnomeCode could you maybe add a slinger on top of the castle tower like the big one that you don’t place down (if your going to keep it of course). Then it might look a little better.
This is really helping me make my tower defense game, where every player's towers are these "cards", with their own modifiers to make them unique.
How did you do the BodyGyros? They dont exist anymore
@@justnooberactually its working
@@justnoober it might look like it but they still work
@@justnoober i dont know if you still care but you can add in objects that you cant regularly put in studio using commands (ex: Instance.new("hfushfsiu")
It's always nice to see how others complete tasks.
no
fr
the so long awaited video
Happy Summer GnomeCode! And thx for this tutorial
heres some things you might add "more towers" and "healthbars" and a "working base damage and lose" "wave texts" a "lobby" and "the enemy speed and enemy health" and a "boss" and a "shop where you buy towers" and "stun scripts" and "Win Script"
That's kinda cool idea!
Be patient GnomeCode will do something great soon!
Enemy speed and health is quite easy and it works like a charm, just go to Humanoid, and change "Health" + "MaxHealth" to whatever you want, and walkspeed to also whatever you want. If your zombie is half the size of a normal R6 avatar, I'd recommend keeping the walkspeed at more than 3.25.
Thats to prevent humanoid timeout (which happens when target doesnt reach destination in less than 8 seconds)
@@typicalaverage ye
@@typicalaverage well i just tackled that with waypoints in between path
also why the hell did roblox add humanoid timeout
even if they did add that
they should make it a parameter and not a auto
@@guyfrommars1110 To make it look better, instead of putting extra waypoints which makes the movement off-centered, try to instead repeat the MoveTo() function until it is finished
gnomecode my attack animation keeps looping even though i didnt set it to loop and the range is only 10. the enemies were out of range and the animation was still constantly playing
same
3 questions,Is it loop,Is it action,double check the ID or remake.
Same
@@alvinkohjirui123thanks I did that last one
Thanks for doing all these tutorials!
I'm finally understanding how the tower defense system works now.
WOW,I FOUND THIS FAST 33 SECONDS love your videos
Im predicting part 8 is gonna be the base's health
HOW DID YOU PREDICT THAT WOOWWWW
epic
gaming@@tomo_tomato0923
Could you do a little update or explanation on how to make the towers face the enemies since BodyGyro got deprecated and AlignRotation has a different workflow
yeah same
its deprecated? i use it
@@jinxed-trulySame
yeah no Fr....
@@jinxed-truly how??
thanks so much! I like tower defence tutorials!
Yooo, new video!! Thank you GnomeCode!
(Also First lol)
I have requests:
Cash system
Base health
Lobby
Upgrading system
teleportation system to get to the maps like the other td games
And the player limit for each map (mega servers have the highest player limit and the normal servers have 1-4 player limit)
New health system for Mobs (when you hover over the mob it will show its health, if you dont want that just show the health above the mob)
Max towers system
More maps
Yes!
You don't have to tell him I mean he's obv gonna do all of those stuff bc that's the basic tower defense features
im making a tutorial of that too!
Uhm, does anyone know why my tower floats when I unanchor the HumanoidRootPart?
@@braidien_huangie idk lol
For those who are having problems during the idle animation part, just remember to set your configuration folder name to "Animations" or to whatever you have your script to
I have it to animations, but After i place the tower it's idle doesnt work
@@lorlema7404set the animation to looping
I have mine but there are no error's and even in the placeholder the animation just straight up does not work
@@sikoranowak7991 Well I did not but I found out why. The animation I made whenever I try to Import it it does not work. Idk if urs also has the same problem but...
I asked people on the roblox dev forum and they said it was a bug and I could not report it since I was only a member. So I ditched the game for now. If you have the same problem as me try a dif animation and see if it works if it does you have to make a new animation.
tysm u helped me fix the anims
Happy New Year! That's the best tutorial ever!
Please help me with this problem: BodyGyro got deprecated and I cannot make a tower face an enemy!
I got a fix: you need to make the exact same code with this BOdyGyro, ignoring these deprecated warnings. If it still doesn't work try restart the studio.
I'm not using animations for my Mobs but I am using animations for my towers, is there a way to disable the animations for the Mobs but keep it for the towers? It keeps giving me errors for an 'infinite yield'
Infinite yield isn’t an error don’t worry
Hi Gnomecode, I love this series but I have encountered a problem, in the 4th episode, when I try to find the distance between parts, it says: "Position is not a valid member of Model Workspace.Model". I checked your code and my code and I cant find any differences. Heres my code if you want to check it out:
local tower = script.Parent
local enemy = workspace.Enemy
local distance = (tower.Position - enemy.Position).Magnitude
print(distance)
Thanks!
Remember that models do not have a 'position' property. In this episode I switched to using a model and so used HumanoidRootPart
@GnomeCode After seeing your reply, I turned my tower into a union and it worked! Thanks a lot
@@GnomeCode when i do humanoid root part with the towers nothing works for some reason i tried to use print to see if it works but it didnt do anything in the output
and there are no syntax errors in the output or prints or warnings just nothing
here is my code that i wrote ( the entire tower module)
local serverstorage = game.ServerStorage
local phys = game:GetService("PhysicsService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local events = ReplicatedStorage:WaitForChild("Events")
local SpawnTowerEvent = events:WaitForChild("PlaceTower")
local tower = {}
function FindNearestTarget(newtower)
local MaxDistance = 15
local nearestTarget = nil
for i, target in ipairs(workspace.Mobs:GetChildren()) do
local distance = (target.HumanoidRootPart.Position - newtower.HumanoidRootPart.Position)
print(newtower.HumanoidRootPart.Position)
if distance < MaxDistance then
nearestTarget = target
MaxDistance = distance
end
end
return nearestTarget
end
function tower.Attack(newtower)
local target = FindNearestTarget(newtower)
if target then
target.Humanoid:TakeDamage(5)
end
task.wait(3)
tower.Attack(newtower)
end
function tower.Spawn(player, name, cframe)
local towerExists = ReplicatedStorage.Towers:FindFirstChild(name)
if towerExists then
local newtower = towerExists:Clone()
newtower.HumanoidRootPart.CFrame = cframe
newtower.Parent = workspace.Towers
newtower.HumanoidRootPart:SetNetworkOwner(nil)
for i, object in ipairs(newtower:GetDescendants()) do
if object:IsA("BasePart") then
phys:SetPartCollisionGroup(object, "Tower")
end
end
coroutine.wrap(tower.Attack)(newtower)
else
warn("the requested tower does not exist:", name)
end
end
SpawnTowerEvent.OnServerEvent:Connect(tower.Spawn)
return tower
Happy new year gnomecode!
happy new year! thanks for all the great tower defense tutorials!
Hi Gnome, I was wondering if later on. You will teach us how to make a lobby and elevators to teleport you into different maps?
I was thinking the same thing. Hoping he sees this comment
@@ajtriesedits1448 yea every single tower defense game tutorial I watch doesn’t teach how to make a full lobby, I really don’t know why
This dude is like a teacher but a gamer one who helps you learn to make game ngl.
A code teacher
Love you vids especially your tutorials and I really like this tower defense series I how you post the game when its done I'm sure I'll have a good time.
happy new years eve gnome! i hope you enjoy yourself!
Can you fix this tutorial, bodygyro is deprecated
Its works for me
I’m pretty sure it isn’t
You can still use body gyros if you create them inside a script
YOU'RE FIRST RUclipsR WHO TEACHES US HOW TO MAKE TD GAME! Also some ideas for next video: 1. Add admin commands like
!unit tank. 2. Add abilities for bosses like stunning towers for 2 seconds. 3. Tower that could spawn cars or tanks and that cars will kill zombies when touches them.
Yeah im 116+ lvl in tds im very love this game
@@thesad_lite7630 so uhh addons are gonna make that happen not the td tutorial so go in tower defense addons gnome code or some sort
My tower isn’t shooting. It’s just idle during it attacking. My idle is looped, my attack isn’t, my attack is action, my idle is idle. I’ve done everything, looked through every comment, and it’s still not working. Why
None of My animations are working
I’m starting to figure it out, the idle animation keeps playing when it’s supposed to be the attack animation. I don’t know how to fix this
1 Infinite yield possible on 'Workspace.Mobs.Basic:WaitForChild("Animation")' - Studio
17:14:28.481 Stack Begin - Studio
17:14:28.481 Script 'Players.JToH_SC.PlayerScripts.Animations', Line 3 - function setAnimation - Studio - Animations:3
Same
means a value is missing
Hey Gnome, currently I am having some problems with the bodygyro, whenever the tower is placed it starts floating and is basically flying about half a stud above the baseplate, help please xD
I figured out the problem sort of, basically bodygyro doesnt work on anchored parts. So I unanchored the humanoidrootpart because it had a bodygyro, but then it made the tower float because there were no anchored parts in the tower. Gnome, did you anchor your humanoidrootpart in this video?
EDIT: I FIXED IT HOORAY! It was because of the hipheight on my tower was making it float. I changed it back to 0 and just set the part of the code where it references and uses hipheight to just 1 stud.
Try rewatching the "placing towers" video.
@@HotMess_but it happened after i added the bodygyro lol
@@HotMess_ ok so here is the problem i figured out, bodygyro doesnt work on anchored parts so i unanchored the humanoidrootpart, but when i do that it makes the tower float because there is no anchored part in that tower. do you know if gnome had his hrp anchored in this video?
@@candykid44 change hipheight
@@GamrGuyReal if you press "read more" it tells you that I found out and fixed this problem 3 days ago, thanks anyways :)
my towers arent dealing damage after i place them down
Alternative way to fix not loading animations if you did everything:
Put the code - workspace.Mobs.ChildAdded:Connect(function(object)
playAnimation(object, "Walk")
end)
workspace.Towers.ChildAdded:Connect(function(object)
playAnimation(object, "Idle")
end)
under the "animateTowerEvent.OnClientEvent:Connect(function(tower, animName, target)"
But, since it produces multiple times, it causes several mistakes every time the tower attacks, but the animations are working in anyway.
Hello, Gnome! This series is fantastic so far! However, I'm having an issue and I was wondering if you could help me. I try to edit my code like the same way you do at 22:34 but my Tower still keeps doing the attack animation. I'm pretty sure I've done the entire script correctly, and I was wondering if you could help me.
Edited: I figured it out! Turns out, both my idle animation and attack animation were set to loop, but once I turned them both off, it broke the animations and made it so my tower held still. Turns out, if you let the idle animation loop, but not the attack animation, it works fine!
its either its not on action(iff its not then its gonna loop) or uve seeted it to loop(aka while making the animations u pressed the loop button and dint turn it off)
me too
@@subhfathesubmarine961 I'm not entirely sure what you mean by it not being on action, and after testing your loop button theory, it just makes the character hold completely still after finishing their animation.
@@subhfathesubmarine961 Nevermind, I figured it out!
bro mine was looping it was the same problem bc of you i could continue the series tysm
22:19 hello great gnomecode sir
im using a custom rigged tower for this and it wont load the attack anim when it actually attacks it just continues the idle anim
if you know how to fix this please tell me
thank you
I had something similar but instead of it not playing the attack animation it would play the attack animation and not stop or go back to the idle animation and I saw what he did to fix it in the video and I did that but it still doesn't work
@@ThatDemonicGamer1 were u able to fix it?
when i did the animation scripting al the mobs and the slinger didnt work any fixes?
for the people that found the tower is floating make sure your hipheight in humanoid is set to 2 so that will work with gnomecode script
isnt that gonna make it float even more
he meant divided i think
@@TutucrMapper
I worked on this for a long time, I can tell you how to make a working animation, you need to do everything the same on video, but only you must save the Save As animation on the character, and write it as new and its name, I say this to those who don’t it's very clear how to do it
saving my spot at 19:53 and btw nice work!
Tbh I LOVE this tower defense tutorial
This is amazing ! Keep going i wanna see untill last episode!
Module code did not return exactly one value pls help
for bodygyro, ignore all lines just place the following newTower.PrimaryPart.CFrame = CFrame.new(newTower.PrimaryPart.Position, target.HumanoidRootPart.Position) above the line animateTowerEvent:FireAllClients(newTower, "Attack")
what line
what line
what line
What line
It work thank!
Keep up the great work !
Cool new video but I think my brain is so small for it:)(Happy new year!🎉)
HOLY THIS WORKS GREAT!!!!!!!!!!
Gnome code when one animation is running my other towers just don’t attack they just play the idle animation
Amazing tutorial once again
My script does not working. Tower doesn't shoot the enemy. Could you please put or send the Tower script here.
you are insane man your voice is so relaxing and you explain very well (im not english and sometimes i don't understand but with you i always understand) you are the best roblox studio channel on youtube !!!! continue like this we all love you !!
Thank you SO much for tis series! Not only can you add on more at the end, it is just so helpful because you aren’t just telling us to do but actually teaching us about things AND every time you do make a mistake (which is rare) you can always help us and are always replying to problems we have! Also you must have worked so hard finding out thus script and I just want to thank you for all of the episodes that you have done, you are a GREAT scripting youtuber!
love this series, saving my spot, 6:00!
When I try to do the attack animation it slows down the idle animation and never plays the attack animation (yes the attack animation is action and idle is idle, and also the tower is unanchored)
I love you bro.
Nive videooooo🤩🤩
I have a question;
Can u show how make clothes? Like Grand piece online or ....
@GnomeCode... theres a problem... i dont know in what part that was but that to waypoint move think is broken
Why my tower does x2 of damage? its appear to Detect 2 times a enemy, idk how i do that
Just asking can you keep the placeholder anim? I actually like it more
I got the error: ServerScriptService.Main.Tower:53: ServerScriptService.Main.Tower:15: attempt to index nil with 'HumanoidRootPart' I don't know how to fix this...
does your tower have a humanoid root part?
@@GrimGamingTheOfficialim having the same issue here and it does
Then I don’t know honestly just run it through to chatgpt and see what you get Edit: changed g eat to get
same
anyone, why is the animationTrack in the local script called "Animations" underlined orange and not working?
Amazing series!
ive seen you before
@@NacoPercyIsKool ok
if the attack animation keeps playing even when you fix it make sure you turned off loop in animation itself then re-save and paste the ID
Amazing tutorial! Keep it up!
it gave me an error called "Network Ownership API cannot be called on Anchored parts or parts welded to Anchored parts."
Some of your parts is anchored, Your union, meshpart, part, Shouldnt be anchored so it would disable that error and do your attack function thingy
Nvm Remove that line of script its useless and anchored is better but only humanoid root part or primary part of the model
Hello i second. Your videos are nice and cool and great and good and awesome!!! Congrats with 50K subs!
Hey guys all of my code works the only issue is that the animation won’t stop playing any fixes?
Why does my shooting animation still is doing the animation when there’s no enemies I didn’t put the animation on loop
i cant believe you subbed this video when I was seeing the other parts, I discover your channel today and you make reallu cool videos, I like it
get a happy new 2022 and continue making this amazing content!
Variable ‘targetCFrame’ defined at line 32 is never initialized or assigned; initialize with ‘nil’ to silence
well planed tutorials. Thank you for Uploading Roblox scripting tutorials! your scripting Style is bit different but Very Interesting! Love your great work GnomeCode, Keep it up! Never Give up on this!!
good video love your series
Oml this helped so much
Saving my spot 13:40
Hi, once I connected the slingshot to the rig then go to animation editor, a error pops up saying the right arm is affected by multiple Motor6Ds, how do I fix this??
You have to connect the hand to the slingshot
Not the slingshot to the hand
@@timmyismyfavoriteidol Ohh thanks thanks
@@NeooNovaa yw
can someone help me figure out how to make the tower immediately snap to face the direction of the enemy instead of slowly turning towards it? if anyone could help that would be great! (pls help lol)