Forest Logo
search
package_2

rts-system

By @s9oon

Roblox

Mirrored from Wally

RTS System

Overview

A modular and extensible RTS system for Roblox, designed with clean architecture and reusable components in mind. Distributed as a Wally package.

  • Minions from any character model, with idle and walk animations, owned and moved by the server.
  • Selection and control groups 1 to 9, kept on each player's client.
  • Top-down camera with drag to pan, scroll to zoom and following a minion.
  • Rebindable keys, including key combinations.
  • Server checks on every request, so players can only control their own minions.

Install

# your game's wally.toml
[dependencies]
RTS = "s9oon/rts-system@0.2.1"

Run wally install, then make sure your Rojo project puts the Packages folder in ReplicatedStorage:

"ReplicatedStorage": {
  "Packages": { "$path": "Packages" }
}
-- Server
local RTS = require(game:GetService("ReplicatedStorage").Packages.RTS)

RTS.Server.start()
-- "Minion" is the name you give this type. ServerStorage.Minion is any character model you put there.
RTS.Server.defineMinion("Minion", { model = game:GetService("ServerStorage").Minion })
RTS.Server.allowPlayerSpawning("Minion")
-- Client
local RTS = require(game:GetService("ReplicatedStorage"):WaitForChild("Packages"):WaitForChild("RTS"))

RTS.Client.start()

Right click spawns a Minion. Select minions with RTS.Client.Selection and press F to send them to the mouse, or call RTS.Client.Commands.setDestination(position) from your own code.

Docs

  • Getting started: install, starting the library, recommended place settings
  • Minions: defining, spawning and controlling minions on the server
  • Selection: selecting minions and control groups
  • Commands: asking the server to spawn and move minions
  • Keybinds: every key and how to change it
  • Camera: pan, zoom and follow
  • Demo: running the demo place

Development

src/                  the package, this is all that gets published
  init.luau           entry point, returns { Server, Client, Shared, Keybinds }
  server/             minions, spawning, remotes and their checks
  client/             camera, selection, commands, keybinds
  shared/             remotes and attribute names used by both sides
demo/                 the demo place's scripts and model, not published
docs/                 these docs
default.project.json  the package, used by games that install it
dev.project.json      the demo place
wally install
rojo serve dev.project.json

Publish a new version by bumping version in wally.toml, then wally publish.

License

MIT

Package Details

Install command (Click to copy)


Version

0.2.1

License

MIT

check_circle

Safe for commercial use

Automated license review — not legal advice.