[v2] RoRift | Create a Fortnite-like rift in an instant

RoRift [V2]

Get it on Roblox!

Why I made this module

We’ve all had it at least once. You are searching the Roblox library for a working Fortnite rift, but get tons of results that don’t even look like a rift. That’s why I’m introducing RoRift, THE module for creating Fortnite rifts in Studio. And the module which could be really useful for live events.

Functions

module.new(CFrame, type, size, color, soundId) : returns RiftObject
This function will create a rift once fired. The position and orientation are determined by a CFrame. You can choose between two types of Rifts. One is a flat Rift and two is a 3D Rift that will be… uhh not flat. Then you can choose to have the Rift in a specific color, determined by a Color3, and finally you can now have the option to change the sound of the Rift when it opens, which is determined by a sound ID (rbxassetid included, not only the id or else it won’t work).

RiftObject:Appear()
This function will let the Rift created with the module.new() function appear.

RiftObject:Close()
This function will let the Rift created with the module.new() function close.

RiftObject:ObjectEnter()
This function is used to create an effect that appears when an object enters the Rift.

RiftObject:SetCFrame(cframe)
This function sets the CFrame of the Rift to the given CFrame, while the Rift is already created.

RiftObject:SetColor(color)
This function sets the Color3 of the Rift to the given Color3, while the Rift is already created.

RiftObject:SetSize(size)
This function sets the Size of the Rift to the given number. The maximum Size of the Rift is 14.

RiftObject:Destroy()
This function destroys the Rift and removes it from the metatable. It is advised not to use this function while the Rift is visible.

Example Scripts

Script inside of a Part with a ProximityPrompt

local rift = require(path.to.Module) -- Change "path.to.Module" to wherever the module is located.
local prompt = script.Parent.ProximityPrompt
local RiftAppear = script.Parent.RiftPos

local debounce = true

prompt.Triggered:Connect(function()
  if debounce == true then
    debounce = false

    -- Create a flat rift at the part called "RiftAppear" with a size of 14, the color white and the sound with the ID 12345678.
    local NewRift = rift.new(RiftAppear.CFrame, "Default", 14, Color3.fromRGB(255, 255, 255), "rbxassetid://12345678")
    NewRift:Appear() -- Make the Rift appear
    
    task.wait(6) -- 6-second wait to avoid the Rift from immediately disappearing.

    NewRift:Close()

    task.wait(5) -- 5-second wait to avoid players from spamming rifts.
 
    NewRift:Destroy()
    debounce = true
  end
end)

Showcase

Default Rift Type

3D Rift Type

Links

Marketplace Model

Place File
RoRiftV2 Test Place.rbxl (96.2 KB)

Updates

Version 1
v1.1
  • Removed :setup() function
  • Replaced :Remove() with :Destroy()
  • Removed unnecessary Position and Orientation and replaced them with CFrame.
  • Changed wait() to task.wait() to make it function faster
v1.2
  • Module now works wherever you place it

RoRift V1 Model

Version 2
v2.1 (Current)
  • Added different types of Rifts
  • Added ability to change the size of Rifts
  • New, even more satisfying shockwave particles
  • Rift no longer automatically disappears
  • Moved away from making flat Rifts and created 3D Rifts
  • module.new() function no longer instantly creates a Rift
  • module.new() function now returns a RiftObject
  • Added RiftObject:Appear() function
  • Added RiftObject:Close() function
  • Added RiftObject:ObjectEnter() function
  • Added RiftObject:SetCFrame() function
  • Added RiftObject:SetColor() function
  • Added RiftObject:SetSize() function
  • Added RiftObject:Destroy() function
How would you rate this module?
  • Awesome! :wink:
  • It’s good
  • Can be better
  • It’s the worst

0 voters

All feedback is appreciated, and feel free to suggest new features!

81 Likes

It’s good but it can surely be better, I see you used it for a kind of explosion effect in the sky, I noticed one thing:
When it disappeared it didn’t disappear smoothly, I could see the change s in transparency, otherwise good job!

3 Likes

That was because I was using Roblox’s built-in recording program which caused a lot of lag. I’ve updated the post now and because I’ve used a different recording program, you’ll see the rift in a lot more detail.

2 Likes

Oh okay, it looks way better now, I might see this being used for giant explosions, good job!

1 Like

I’m very interesting in learning how special effects like this are made. This is very well made! I bookmarked this!

3 Likes

I could use this for a game im working on!! An btw this looks amazing!

2 Likes

image how do i fix this @RubenHgamer

1 Like

Create a folder in ServerStorage called “ModuleScripts” and put the RiftModule in the folder.

3 Likes

I appreciated it! It’s too amazing! This could be used on my big project, for sure I will credit you too @RubenHgamer

1 Like

This is such an amazing effect! I’d recommend making more VFX in the future because this is astonishingly well done.

1 Like

very cool, but it utilizes particles which can give some problems from a distance. consider using billboards or the :Emit() function on particles. good work

1 Like

this was the most random thing ive seen that actually looks good

2 Likes

It’ s the absolute worst, I hate it. I will never use it, it’ s very useless and very low quality.
I absolutely love it!

3 Likes

Theres a lot of mixed feelings in this comment lol.

3 Likes

I improved the script so it’s less invasive, and also more efficient. It can also run on both the client and server.

Improvements:

  • wait() replaced with task.wait()
  • Server script code moved to a :Spawn() object method
  • Removed redundant :setup() function
  • Module can be parented anywhere to work
  • Rift.new() will return an object (OOP) instead of nothing

@RubenHgamer I’ll try to remember to send it here, later.

2 Likes

they also use :remove() instead of :destroy() to cleanup may be good to add that as well

This really looks great! I can potentially see myself using this module in the future, it’s an excellent resource! Awesome job on this! :smile:

2 Likes

Update time!

v.1.1

  • Removed :setup() function
  • Replaced :Remove() with :Destroy()
  • Removed unnecessary Position and Orientation and replaced them with CFrame.
  • Changed wait() to task.wait() to make it function faster
1 Like

I haven’t tested it and I don’t know yet the method by which this was created, but I’m sure if you were to separate the images of the Rift And you upscale them at different times would be more cool

how do i set this up? i never used modules before