EasyCutscenes is a simple and easy-to-use Open-Source module aiming to ease the work for creating Cutscenes for your games, with this brilliant module, you can manage your created Cutscenes with ease and easily Play those Cutscenes anytime you want. You can simply create a Table containing the data for the Cutscene you wish to create on the Server-Side and then run the cutscene on the Server-side as well! (You can still play the Cutscene for some players) All you need for that is just providing the table of players you wish for the Cutscene to play for them, then the module automatically call the Client-Side to play the cutscene.
Here you can download the Module
Roblox Marketplace or
EasyCutscenes.rbxm
After installed to Studio, you would see a Folder conatining a ModuleScript
and a LocalScript
, should be as followings :
Now, put the ModuleScript
into ServerStorage
. Then, put the LocalScript
under StarterPlayerScripts
After that, you can delete the folder, it is up to you.
Now it’s time to finally write some code! Let’s add a Script
into ServerScriptService
first!
Now, let’s create the Table containing the Cutscene Data!
local cutsceneInfo = {
[1] = { -- Section 1 of the Cutscene
["Position"] = CFrame.new(0,500,0), -- Where the Cutscene should end at, in CFrame
["Duration"] = 1, -- The Duration of the Cutscene
["EasingStyle"] = Enum.EasingStyle.Quad, -- The EasingStyle of the Cutscene
["EasingDirection"] = Enum.EasingDirection.In -- The EasingDirection of the Cutscene
},
[2] = { -- Section 2 of the Cutscene
["Position"] = workspace.Cam.CFrame, -- Using part's CFrame is recommended
["Duration"] = 5,
["EasingStyle"] = Enum.EasingStyle.Quad,
["EasingDirection"] = Enum.EasingDirection.In
}
}
That will create a Table of Cutscene data! But wait, why is there 2 tables under the CutsceneData Table? Actually, that’s one of the greatest feature of this Module! You can create Cutscene Sections! You can see that there are 2 dictionaries under the table, each represents a Section, after the first Section has ran, the second one will Play without Stopping!
Still don't get what does section means? Click here
A cutscene section is simply a part of a Cutscene, let’s say there is a Cutscene that moves the Camera from the Player to Part B, then moving to Part C, then the process where the Camera moves from the Player to Part B is the first section of the Cutscene. And the process where the Camera moves from Part B to Part C is the second section of the Cutscene
Now we got the Cutscene Data ready, let’s Create a Cutscene using the Data! We’ll use CreateCutscene()
to do this.
local EasyCutscenes = require(game.ServerStorage:WaitForChild("EasyCutscenes"))
local cutscene = EasyCutscenes:CreateCutscene(cutsceneInfo)
We will have to create a variable as the function returns a formatted table consisting of the cutscene data. Now that we’ve created the Cutscene, let’s try to Play it!
local EasyCutscenes = require(game.ServerStorage:WaitForChild("EasyCutscenes"))
local cutscene = EasyCutscenes:CreateCutscene(cutsceneInfo)
task.wait(5)
local currentPlayers = game.Players:GetChildren() -- This will represent all players in the game
EasyCutscenes:RunCutscene(currentPlayers, cutscene)
And it should run successfully, like this
Dont ask me why the video is bad
Why should I use this Module?
-
You can Manage cutscenes much more easier and neat and you can do all that stuff simply in the Server-Side but not in the Cilent-Side
-
By using this Module, you can write fewer code to create a cutscene, which is great, isnt it?
API Refrence
module:CreateCutscene()
This will return a formatted table consisting of the data for a Cutscene, as long as a proper CutsceneInfo table is provided as a parameter when trying to run the function. If a part of the data is not provided, such as EasingStyle, then the module will automatically take Linear as it’s EasingStyle
This is a simple Demonstration :
local cutscene = EasyCutscenes:CreateCutscene(cutsceneInfo) -- Make sure you have written the cutsceneInfo Table first
module:RunCutscene()
This Plays a created cutscene for some players, it requires a table of players as its first parameter, and a result from module:CreateCutscene()
as its second parameter
Here is a simple Demonstration :
local currentPlayers = game.Players:GetChildren() -- This will represent all players in the game
EasyCutscenes:RunCutscene(currentPlayers, cutscene) -- Make sure you have a Variable containing the result
Note : The Module is still in Beta so Bugs should be expected, you may report it in the comments if you found one!
And that is all, happy coding! And I hope you will love this Module!
If you have a feedback, leave it in the comments!
Love this Module? Is it useful? (Please only vote after using it)
- Yes
- Kinda
- No
0 voters