I want to make a turn-based combat system but don’t know where to start
any resources that can help me?
I want to make a turn-based combat system but don’t know where to start
any resources that can help me?
I am slightly confused as to what you mean by “turn-based combat system”. Can you elaborate, so we know what you are looking for?
don’t you know? like pokemon? one person does their attack, than they wait for other to attack or run or heal etc
A few articles that could help (a quick Google search):
@IceTheOneAndOnly, everyone is looking for something different My definition of a turn based combat system would be completely different than the next persons, all depends on what they need and want
alright I’ll check it out thank you
I’m still having a hard time starting the turn system do I use module scripts or normal scripts?
If you require something in a normal script, then the thing you require should be a modules script. You should also know to return it at the end. Example:
local turnBasedCombat = {}
turnBasedCombat.Parent = game.Workspace
return turnBasedCombat
just realized how stupid that question was
Lol. Even me did never know this until maybe a week or so? So no worries, we always learn!
Even though this isnt really a guide, its more of a reccomendation, visual stuff like camera, characters and more should be local, stuff that arent visible to the player like, values, datastores and non visual stuff should be serversided.
Use modules, to create functions, for example check who is attacking now (probably setting up a new value in ReplicatedStorage
and changing the value on server (dont check the value on client, but check the value on server, it will prevent exploiting) Use local scripts to do things on client for example damage done UI or ability debounce timer. And server scripts you can use, to save stats, or animate abilities (also do damage, never do damage on client, it cant be easily exploited) ok so there are some things you can do in each script.
So there is some script, for new battle function in module script
local mainModule = {}
local rep = game:GetService("ReplicatedStorage")
function mainModule.newBattle(player1, player2) --// you can add other things too like battle type
print("Started new battle with "..player1.Name.." and "..player2.Name.."!")
local battle = Instance.new("Folder", rep)
battle.Name = player1.Name.."_"..player2.Name.."_battle"
local attacker = Instance.new("ObjectValue", battle)
attacker.Name = "Attacker"
attacker.Value = player1
end
return mainModule
And on server we can start new battle with random players by doing this
local players = game.Players:GetChildren()
local rep = game:GetService("ReplicatedStorage")
local mainModule = require(rep:WaitForChild("MainModule"))
mainModule.newBattle(math.random(1, #players), math.random(1, #players))
Not sure if it works, but this is just an example.
Alright, thank you for helping me.