R.E.P.O. mechanics, need an idea for the game design!

Hello, I randomly decided to try and recreate R.E.P.O. mechanics (for anyone wondering - R.E.P.O. on Steam). There can still be some minor adjustments and I might have missed some details, but I will add them at some point.

I’m writing this because I need an idea for the game, obviously whit this system. For now, I came up with two options, to copy the original game (which I prefer not to) or make a train-like vehicle and transport players through different bioms (I imagined them like the forests from movie Avatar). Have the players collect “something” and bring it back in time before the train leaves. There would be different obstacles and monsters depending on the biom, some bioms being more or less hostile/peaceful. The game would have a slight horror vibe, closer to Subnautica vibe of not knowing what’s coming.

Here is the preview of the system:

(The video quality is awful and I couldn’t bother fixing it, if anyone knows how please tell me. I think one video is in Shorts format)

This is the first POV, you can see the eye tracking, head turning side to side but not over the shoulders, looking up and down torso adjustments and dragging system with the right hand mimicking “hold” movement. The brown platform resembles the train mentioned before, it can drag objects and players that are on it.

This is the second POV (first person view). The eyes twitching is occurring because I switched tabs to control the other player (in real game that won’t happen).

Everything is still low poly and, as mentioned before, will add voice chat, possibly custom player characters, different character colors and server side item highlights according to character color, etc. (this are the ideas that came to mind while writing this).

Obviously, it would be appreciated to leave your opinion on this system. :grin:

Can you please explain how you did the item pickup mechanics? I’ve been looking to make something similar and have been struggling to replicate it for weeks! Thanks!

The system looks really good btw!

Thanks man!

I was searching the forum and found this solution https://devforum.roblox.com/t/dragging-objects-with-the-mouse/403766:

local targetPos = nil
local currentTarget = nil

runService.Stepped:Connect(function()
	targetPos = char.Head.CFrame.Position + (char.Head.CFrame.LookVector * carryDistance)
				
	local currentCFrame = currentTarget.PrimaryPart.CFrame
	local newCFrame = currentCFrame:Lerp(CFrame.new(targetPos, targetPos + char.Head.CFrame.LookVector), carrySmooth)
	
	currentTarget:SetPrimaryPartCFrame(newCFrame)
	currentTarget.PrimaryPart.AssemblyLinearVelocity = Vector3.new(0,0,0)
end)

This is the calculation part, you would add - whenever the player clicks, the currentTarget changes to what’s clicked and fire an event to the server to change the network owner of a currentTarget to player. When player releases left mouse button, fire the event to set it’s network owner back to nil (server). Add a variable that determines if the player is holding something and if true do the calculation.

local pos = targetPos - currentTarget.PrimaryPart.Position
local velocity = Vector3.new(pos.X, 0, pos.Z) * throwBoost
currentTarget.PrimaryPart.AssemblyLinearVelocity = velocity

This is the calculation for velocity that you need to add after the player lets go off the object.

For the outline effect, there is highlighting. Just clone it when the player pick the object and destroy it later.

I don’t know if I missed something, I assume you can fill in the rest.

2 Likes

Modified it a little bit and works great! Appreciate it.

1 Like