/\*/\*/\*/\*/\*/\*/\*/\*/\*/\*/\*/\*/\*/\ Join my Discord Server (Cus why not 🤷♂️) Discord: / discord [Cool Shirts to support me] Same with my roblox group: Group: www.roblox.com... \/*\/*\/*\/*\/*\/*\/*\/*\/*\/*\/*\/*\/*\/
I hope to see you continue this tutorial. There is still much to be added. Dashes, block, debree from downslaming and ofc skills. I wish you show us how to do such stuff.
also there is an issue, when i set the time between the next animation from 0.2 to like 0.17 then both punch animations play at once. How to fix that so that the currently playing animation is put in debris? it would also be nice if you show us how to make it so you can just hold mouse1 instead of spamming it.
how many total parts will there be since I will follow this when its over cause I need it for my game ngl your original also saved my game made it 10x more fun cant wait for this to be over it looks so good
@atoo If you have the time, it would be nice if you continued the series for a longer time, even adding little things like adding those downslam rock particles, Ofc, if you have the time. and I don't mean "New video every week". Not even a single video for a month. Slowly extend the series and refine it until you reach the maximum of your creativity. Sorry for bad english
Hey man, you're a talented youtuber. Please don't give up on the series. It's really helpful. I'd suggest you add all the dash variants, down slam effect, vfx, sounds, abilities, character select and ultimates. I also have a problem with the uppercut, whenever I try to jump at the second or third m1 it doesn't work and just plays the 4th punch. Do you know how I can fix it?
Thanks for the tips and the ideas! About your problem, i dont really understand what's your problem, you can only uppercut after the 3rd m1. if its not working maybe you have misspellings in the script
@@TheTomatoo I checked my code and everything is alright. I hold jump and at the 4th m1 it plays the 4th punch. If you add me on discord, I can send you a clip
@@TheTomatoo I checked it again and I think it particularly works. It doesn't knock back the dummy like it should, but it plays the animation of the 4th punch
yo i came back from a restuarant was already making my game at the time i lft my pc on and i see 17 minutes ago part 4 on here lets go tysm for this series
btw@@TheTomatoo can u help me whenever i make the cooldowns even if its perfect i checked it so much even the output says theyre are no errors i can only punch twice then it only prins my punches in the output and in order to punch again i need to reset but then i can only do it twice again at part 1 im doing it with a new game bc i messed something up in the other game i tryd to make now im doing good thats just getting in my way
Hey Man i like your work really much and i wanted to ask you if you can make an episode that when we use a tool that doesn't punches just like tsb battlegrounds, thanks !
hello, there's a little problem, when I punch, it works as expected, but the problem is when I jump and downslam, it plays the animation (but no hitbox) then I can't punch anymore. Can you help?
Not trying to force you, but you should add dashing next because it's a fundamental part of the game used to escape combos and traverse the map easier.
hey ive been making my own combat system on my own and this tutorial helps me but i have 1 question tho... how do i make the player that got punched will get stun and the stunned player cannot punch back?? ive been using atributes to detect stunned player but its seems not working
hey Amazing Video thankyou so much!!! but At part 5 can you teach us how to make it so when you equip tools it doesnt m1.... or maybe teach us how to make the keybind skills thanks
These tutorials are nice, but when i got to testing the uppercut, I can only do 1 set of m1s, can you help me fix this? i know im late btw edit: this only happens for uppercut, not the others
For some reason, my uppercut works fine, but then when i downslam, the dummy doesn't get slammed into the ground, I've rewrote the script multiple times and took me hours, but still, the dummy just gets knockbacked normally when I downslam, what could be the issue?
hey the tomato i have a suggestion can you make a part 6 of this and can you add hit anims for the victim and get up anims like tsb hey the tomato i have a suggestion can you make a part 6 of this and can you add hit anims for the victim and get up anims like tsb and also add punching sounds and one more thing can you add finishers for example when you down slam you slam them upside-down
A quick question does your hitbox module contains anti hitting player system (not damaging player who hits) if not please show us how to add it i know how but its not compatible with ur tutorial
can someone help me with the down Slam I can't get it to work it just knocks them back normally I have rewritten the down slam script multiple times and triple checked everything that could go wrong and can't seem to find out what's wrong anyone have any ideas?
i tried to put the ragdoll script in other rigs in my game do i can have more than one rig to test the combat on as they die pretty quick, doing that i now get a error that is telling me that the ragdoll won't work if the humanoid of the rig is not r6, the annoying part is that all my rigs are r6 and have a root part. This error is in the serverscript service inside the r6ragdoll script, it is a module script called module script, i tried deleting all my rigs and the code from the rig but it still gives me this error, please help. Becuase of this i cannot progress further into this series which i really liked but i am sady stuck for now. EDIT: I FIXED IT
not sure why but when i load in im getting an error saying expected identifier when parsing expression, got = but i looked back and everythings the same
Thanks so much for the tutorial! I'm having an issue though, I have to click for every M1 for it to work, and I can't just hold down MB1 and let the punches work. Do you know how to solve this?
YOOO i can paste the working code that i did if yall want here it is. THIS IS FOR THE COMBAT SERVER local ReplicatedStorage = game:GetService("ReplicatedStorage") local Remotes = ReplicatedStorage:WaitForChild("Remotes") local combatRemote = Remotes:WaitForChild("Combat") local ServerStorage = game:GetService("ServerStorage") local Modules = ServerStorage:WaitForChild("Modules") local TomatoHitbox = require(Modules:WaitForChild("TomatoHitbox")) local TomatoSlow = require(Modules:WaitForChild("TomatoSlow")) local HitService = require(Modules:WaitForChild("HitService")) local Animations = ReplicatedStorage:WaitForChild("Animations") local CombatAnims = Animations:WaitForChild("Combat") local Players = game:GetService("Players") local UserInputService = game:GetService("UserInputService") local lastPunch = {} local comboTimeout = 1.2 -- Time in seconds to reset the combo if not finished local MAX_COMBO = 4 Players.PlayerAdded:Connect(function(player) player.CharacterAdded:Connect(function(char) char:SetAttribute("Combo", 0) char:SetAttribute("Attacking", false) char:SetAttribute("Punching", false) end) end) local function changeCombo(char) local combo = char:GetAttribute("Combo") local player = game.Players:GetPlayerFromCharacter(char) if not lastPunch[player] then lastPunch[player] = os.clock() end local passedTime = os.clock() - lastPunch[player] if passedTime > comboTimeout then char:SetAttribute("Combo", 1) else if combo < MAX_COMBO then char:SetAttribute("Combo", combo + 1) else char:SetAttribute("Combo", 1) end end lastPunch[player] = os.clock() end local function getAnimation(char, jump) local combo = char:GetAttribute("Combo") local anims = CombatAnims:GetChildren() local extraAnims = Animations.Extra local inAir = char.Humanoid.FloorMaterial == Enum.Material.Air if jump then return extraAnims:FindFirstChild("UpperCut") or anims[1] elseif combo == MAX_COMBO and inAir then return extraAnims:FindFirstChild("DownSlam") or anims[1] else return anims[combo] or anims[1] end end local function calculateKnockback(attacker, enemy, power) local direction = (enemy.HumanoidRootPart.Position - attacker.HumanoidRootPart.Position).Unit local kb = direction * power return kb end local function playPunchSequence(player, char, animator) for i = 1, MAX_COMBO do if not char:GetAttribute("HoldingMouse1") then break end changeCombo(char) local punchAnim = getAnimation(char, false) local playAnimation = animator:LoadAnimation(punchAnim) playAnimation.KeyframeReached:Connect(function(kf) if kf == "Hit" then local hitbox = TomatoHitbox.new() hitbox.Size = Vector3.new(8, 8, 8) hitbox.CFrame = char.HumanoidRootPart.CFrame * CFrame.new(0, 0, -4) hitbox.Visualizer = true hitbox.onTouch = function(enemyHum) if enemyHum ~= char.Humanoid then local enemy = enemyHum.Parent local knockback = calculateKnockback(char, enemy, 10) local attackerKnockBack = nil if char:GetAttribute("Combo") ~= MAX_COMBO then attackerKnockBack = calculateKnockback(char, enemy, 10) else ragdoll = true knockback = calculateKnockback(char, enemy, 30) end HitService.hit(enemyHum, 3, nil, knockback, attackerKnockBack, char, ragdoll, ragdollDuration) end end hitbox:Start() task.wait(0.1) hitbox:Stop() end end) playAnimation.Stopped:Connect(function() if i == MAX_COMBO then char:SetAttribute("Attacking", false) char:SetAttribute("Punching", false) end end) playAnimation:Play() task.wait(playAnimation.Length) end end UserInputService.InputBegan:Connect(function(input, processed) if input.UserInputType == Enum.UserInputType.MouseButton1 and not processed then local player = Players:GetPlayerFromCharacter(UserInputService:GetFocusedTextBox().Parent) if not player then return end local char = player.Character if not char then return end char:SetAttribute("Attacking", true) char:SetAttribute("Punching", true) char:SetAttribute("HoldingMouse1", true) local hum = char:WaitForChild("Humanoid") local animator = hum:FindFirstChildOfClass("Animator") or Instance.new("Animator", hum) playPunchSequence(player, char, animator) end end) UserInputService.InputEnded:Connect(function(input, processed) if input.UserInputType == Enum.UserInputType.MouseButton1 then local player = Players:GetPlayerFromCharacter(UserInputService:GetFocusedTextBox().Parent) if player then player.Character:SetAttribute("HoldingMouse1", false) end end end) combatRemote.OnServerEvent:Connect(function(player) local char = player.Character if not char then return end local hum = char:WaitForChild("Humanoid") local humRp = char:WaitForChild("HumanoidRootPart") local attacking = char:GetAttribute("Attacking") local punching = char:GetAttribute("Punching") if attacking or punching then return end char:SetAttribute("Attacking", true) char:SetAttribute("Punching", true) changeCombo(char) local Downslam = false local Uppercut = false local ragdollDuration = 2 local ragdoll = false local punchAnim = getAnimation(char, false) local animator = hum:FindFirstChildOfClass("Animator") or Instance.new("Animator", hum) local playAnimation = animator:LoadAnimation(punchAnim) task.spawn(function() repeat task.wait() until playAnimation.Length > 0 TomatoSlow.Stun(hum, playAnimation.Length + 0.15, 8) end) playAnimation.KeyframeReached:Connect(function(kf) if kf == "Hit" then local hitbox = TomatoHitbox.new() hitbox.Size = Vector3.new(8, 8, 8) hitbox.CFrame = humRp.CFrame * CFrame.new(0, -2, -4) hitbox.Visualizer = true hitbox.onTouch = function(enemyHum) if enemyHum ~= hum then local enemy = enemyHum.Parent local knockback = calculateKnockback(char, enemy, 10) local attackerKnockBack = nil if char:GetAttribute("Combo") ~= MAX_COMBO then attackerKnockBack = calculateKnockback(char, enemy, 10) else ragdoll = true knockback = calculateKnockback(char, enemy, 30) end HitService.hit(enemyHum, 3, nil, knockback, attackerKnockBack, char, ragdoll, ragdollDuration) end end hitbox:Start() task.wait(0.1) hitbox:Stop() end end) playAnimation.Stopped:Connect(function() char:SetAttribute("Attacking", false) char:SetAttribute("Punching", false) end) playAnimation:Play() end)
thanks my lovely fried sandwich burger tomato i finnaly made fully combat system in part five add forward dash and side dash and two dash back and blocking that cannot attack player please my lovely fried tomate make it
when is the next tut? (and please show me how to add a cooldown to when you press reset like rogue demon, i mena like you press it and you die aftger 10 seconds), i would love it too if you fix that when you reset that your char falls apart!
Hi, I need help im at 4:41 and for the downslam thing i got to max combo got in the air and it dosent do it i have no errors please help there also is a keyframe event
I have an error but I'm not sure why is that. I set up the animations to action1, 2, 3,4 etc... But the animation action4 is appearing first for some reason. Any solutions please?