Quest System for a game

I inserted it into teh game but it still doesn’t let the player click it. robloxapp-20200404-1550266.wmv (1.6 MB)

Uh, make sure you replace everything. I have changed all scripts.

image

Make sure you put ‘Receive’ into your game. It works when I test it so I’m unsure.

All those things are there on the game.

Alright I’ll see if the problem is with the checker.

Replace the quest:create_model() function with this one in the ‘Quests’ module. Also, see if it prints anything when you click, as it should.

function quest:create_model()
	self:set_verification()
	
	local new_remote = Instance.new("RemoteFunction")
	new_remote.Name = math.random(10000)
	new_remote.Parent = self.Remote
	self.ToDelete = new_remote
	
	self.Remote.Model_Creation:FireClient(self.Player,{Position = self.Position,Model = self.Model,Remote = new_remote})
	
	new_remote.OnServerInvoke = function(plr,part_name)
		local char = workspace:FindFirstChild(plr.Name) or nil
		local check_exist = self.Potential[part_name]
		print(self.Player,char.Name,part_name,check_exist,self.Model.Name)
		if plr == self.Player and check_exist then
		--	if (char.HumanoidRootPart.Position - self.Potential[part_name]).magnitude < 32 then -- Makes sure they are roughly where they should be.
			self:increment(part_name)
			return true
		--	end
		else
			return false
		end
	end	
end

Ok thank you, it works now but the positioning of the blocks is a bit weird when I try and put them in different places they spawn in a completely different place from where I placed them

The position is just put into roblox’s MoveTo function for models. I don’t really use it but I can see how it can be annoying.

You can now emit the ‘Position’ parameter from the create,

local new = module:new({Requirement = 5,Player = plr, Model = Your_Model})

This will place the model in the location you created it. So you can just create the model, put the parts where you want, and do it this way.

example-1.rbxl (27.0 KB)

2 Likes

So I remove: quest.Position = Vector3.new(Vector3.new(-37, 2, 4)) and where do I put local new = module:new({Requirement = 5,Player = plr, Model = Your_Model})?

Inside Documentation where the playeradded function is. You can basically put it in any server script. But you must require the module with

local module = require(game.ServerStorage.Quests)

AND CHANGE YOUR_MODEL TO THE MODEL YOU WANT TO CLONE!

So do I remove this in teh documentation?

and replace it with this: image ?

I’m only going to help so much, but you need to just replace the module:new part. Otherwise it won’t have a player to refer to, as you can see. Also, replace Your_model with… your model. Or remove it and it will use the default model

1 Like

Once again i thank you for your help and I have done that but now it seems to make multiple copies of each one and they don’t have click detectors in them.
game.Players.PlayerAdded:Connect(function(plr)
local new = module:new({Requirement = 10,Player = plr})
end)

Blimey these strange errors are grating.

I ran that exact function and it created the 5 parts, placed them where I left them, and I was able to click them.

https://gyazo.com/8953aa788817f9fb0f2fecbafacb92ae

I don’t see why it won’t work, so to double make sure, remove all the stuff you have placed into your game, and place the latest iteration I sent you.

Alpha v.003 it seems cough

I placed the latest itteration and it now stopped duplicating it but the click detectors are still missing from the blocks robloxapp-20200404-1817229.wmv (419.5 KB)

image

The clickdetectors are created here. Could you see if there are any errors coming from, this, or any of the systems. Just press f9 to see. Look in both server and local.

It seems to be working again now, thank you for your help with everything and your patience. :slight_smile: