Uncopylocked Placement System!


#1

This should not be used in an actual game as it is super unstable, hardly works and is poorly optimised.

I thought that I may as well uncopylock this as I am completely rewriting it now that I am a lot better at scripting and placement systems in general :confused: and I fought that it could help some people out because I know first hand how hard it can be to make a functioning placement system. This does not resemble the placement system used in my current game, it is old and should never be used! Only use it to learn from!

You can find it here.

Please don’t judge the poor and untidy coding, I honestly had no idea where to start with a placement system back then and basically just slapped loads of code together hoping it would work. It is rushed!

That’s basically it, tell me if I missed anything? This is my first actual contribution to the dev forum, so I hope you like it? :smiley:


Trying to create a wall placement
#2

Hey welcome to the DevFourms, it’s a very cool system but as an end user of the system, here’s a few little things to improve from this old build from your new one

  • Integrate keyboard input into picking object. Up, down. forward back, left and right, etc.
  • The ability to cancel once you click Place
  • If a user is inside another users plot of land, they are stuck.
  • important: As an end user it is possible to create objects from outside of the plot and/or extend from inside the plot to outside. As a result see below.

#3

I was aware of all of these issues and they will be fixed in the rewrite, I only released this as a was to teach people about placement system.

Edit: Security is also a major issue, so don’t try to use this in a game.


#4

Oh great, yea I’m aware of it being a learning tool but those was some major things yourself or someone working from the system could be aware of in order to improve more

Security wise, it’s great you are aware of any issues


#5

Yeah, I was gonna fix them but I completely lost motivation for the project and only decided to redo it for my game like 6 months later.

Yeah, I got someone who owns an exploit to come in and try and exploit it and he basically fired the event to place walls anywhere he wanted in like two minuets. I did no server-sided checks.

Edit: The new version is a lot cleaner and more organised.
image


#6

Great. I can’t wait to see what you got next.


#7

Yeah, if you want, you can read about the game here


#8

Instead of using ModuleScripts for every single method, I suggest that you put the methods inside of a ModuleScript with the name of the parent folder.


#9

Thanks for the suggestion, I will probably do that, but for now I’m just doing it to make updating and debugging easier. It’s not an issue in scripts cause all I have to do is:

local EditorModules = setmetatable({}, {__index = function(i, k) return require(RepStorage.Modules.Editor:FindFirstChild(k)) end})

And then I can just do EditorModules.WhateverModuleScript() and it’ll work.


#10

This looks awesome, thank you so much