Snap Builder like most survival games

Very cheap and very simple clicky builder like in survival game, took about 4 hours included quick meshes in 3dsmax.

Yes door needs custom collision, dude is to big.

This is cool. Going to show how you did this?

Ok so first let me say “I’m no Unreal expert” this was just to see how long it would take, its unrefined probably completely wrong or resource expensive. But here goes.

So first off Third Person BP, extended the normal mouse axis input to cast to the spawned Actor so it moves with player.

Event “Numbers” represent if there was a selection HUD element.

Left mouse button checks if valid then checks if booleon value in actor is ok to spawn, then clears reference to that actor.

The viewport, added an additional spring arm that is out front and attached a sphere (any object really) which is the location I send to the actor spawned.

First part of foundation block (ignore the 2 silly calls, was to lazy to set up functions), checks if its placed, actors location is moved on tick based on location sent via 3rdperson BP.

Gets 3rd person reference (again lazy)

Checks if sphere has hit another foundation and sets the actors location to that location until no longer true.

Foundation Block3.PNG

This is replicated 4 times (from an arrow your see in a mo), debug variable allows me to via all at once (terrain requires line trace), ignore player (or you go flying)

Receive the for hit booleons (all must be true), box trace is to check if top of foundation is under ground or hitting something, if everything is great set “Ok to Place” to true change colour to show its ok.

Then nice busy viewport showing static mesh, the for arrows which are used for line traces and each box around the outside is the location if the sphere hits. Blocks around the top are for the wall trace location.

And there you go, not hard (probably wrong) but it works and now I just to make it better, look cooler and some sexy effects (and maybe somehow air/no air) volume.

Hey
You should consider using instanced static meshes instead of spawning a BP for every Structure.
When I started with a building system I did it similar to you, but the performance was horrible. (could spawn max 2k structures vs. 100k+ with instances)

I shall look into static meshes, thought that if static meshes required some changes could potentially cause headache. But my concern was performance would get awful.

Didn’t realise it was your , loved your game concept btw :), feel like I’ve trodden on your toes a bit matey.

Awesome! Thanks for putting in the time to explain

Ok so I’ve been looking into instance static meshes and I so confused, why is there so little information on how to use them. I have no idea how you spawn them, or how go about replicating what I’ve done but using them.

Officially confused beyond all conceivable doubt

2d2c81ea51d5821f9ac1ade7e850eb43d44ad7e4.jpeg

This will create a few instanced static meshes. You can specify a static mesh in this node or by adding Instanced Mesh Component via Add Component button. So basically you just create one main static mesh and then create instances using “Add Instance” mode.

I check later

my snapping version

Ok thankyou, so the instanced meshes needs to be stored in say the first block created and you add a new instance everytime you want to spawn one?

I understand that you need to add an instance now. Looks like I have to rework the entire thing to make this work without all my location hit information as the instance doesn’t store that unless its a new actor. Again are the actors a problem as well.

There’s so little information about this, again I’m not a pro or a programmer. I understand you need to keep performance up and I was aware that lots of actors would reduce performance but the instance static mesh is almost completely alien and Epic have failed to mention anything detailed in there wiki. There could be people out there like me who’ve got 10k actors all happy with there creation only to find that you should be using instances.

Any sort of really great explanation of these would be great. For instance what are instanced static mesh blueprints?

I as example made a BP that stors all the necessairy InstancedMeshes. This BP is placed in the level and referenced in the PlayerCharacter.
by using the Node “AddInstanceWorldSpace” you could use the same transform like before to place it inside this BP.

What you would have to rethink is how to add your collision volumes.
Previously you added them in your FloorBP. Per Floor you had 8 Volumes.
Personally I would prefer to generate them during runtime only where they are really needed.

You could make 4 Sockets in your Floor mesh like this:
[spoiler]

[/spoiler]
and every time you place a FloorInstance it Boxtraces if there is another Floor. If it doesn’t hit one, you add a Boxcollision at the sockets location. And if it does hits one you remove the collision from the other Floor. (sorry if this sounds confusing.)

ps. I dont know what you mean with an instanced static mesh blueprint o_O

Cheers

I had a feeling it was a blueprint storing the instanced static meshes somewhere. In regards to the collision placement locations I was never planning it because it was a test (how long does it take). Now I need to know all I can about instancing I’ll keep moving forward with it.

Does mean my Sims Builder idea is going to need some major rethinking to and it was looking so good.

Instanced mesh blueprint I know, so little information on something which I’m starting to realise is almost one of the most important things to learn. I have no idea what it does, it has no viewport or construction script and getting the details panel to stay up is really hard. Again don’t know what it for, possible a instanced mesh storage blueprint.

Didi’t realize it was you who made the sims like system. That was quite nice.

About the ISM BP (InstancedStaticMesh BP) :

If you make a new BP with parent class Actor and another two with the class ISM(Name them Floor&Wall). You can add those two inside the actor BP. Open the ActorBP, Click Addcomponent and look for Custom. There should your ISMBPs be listed.

BUT

You can add instances directly in an actorBP with “add InstancedStaticMeshComponent”. And if your instances need some individual values (like requirements, Offset, Type, etc) you can hold those in a struct Array.
I’m actually doing it that way.

Now that I know there’s another way, I might try ISM-BPs, since you can define variables directly inside them and even add some code.
In my case it would be 1 Parent and 40+ ChildBPs, so I don’t know if this is the way to go.

Well I was always planning having a “generator” as the starting point of the building (obviously after I decided to pursue it further), I assume I can store the instances in that. I’m planning on linking the generator actor with a volume which is another level of checks which is bound to the playercontroller so you can’t build next to someones generator unless your in the same faction/clan or whatever.

The Sims system would actually be really easy to sort out I original had static meshes stored in an actor together but got worried I wouldn’t be able to modify them easily, now I know instances are the way to go I’ll create a “parent” blueprint under the grid to store the instance, they will need a struct array because you need to be able to decorate them.

I have a feeling the ISM’s could be a pain to manage and more blueprints with code could cause performance issues, but why am I suggesting things to you, I must be crazy. You have a floating boat.

Oh by the way your last video with the buildable physics assets is the funky weird coloured box the parent blueprint?

They will be a pain if you want to be able to change colors. You can’t apply different materials to the instances so you would have to generate new instanced meshes for every color variation. If you dont limit the variations, to like 10 colors, there might be some issues.

No. Its actually only the first mesh inside a Pawn BP. Every added mesh is inside this pawn, or other pawns that have no connection.

ps. I’m only a Pro in Trial N Error so dont get the wrong impression just because of a floating boat xD

Love it, brilliant same here, but its still a floating boat

Well sockets are great, but it doesn’t let me get any socket reference of the instance. I don’t seem to be able to even reference the instance

You can’t reference a specific instance directly.

Not star wars related x)
[spoiler]

[/spoiler]

In this Image you can see how to retrieve the sockets and some helpful nodes.

Whenever you trace you can use “Hit Item” to get the specific Instance.

EDIT: Sorry my mistake.
you wont get the right socket transform like that. One way to get it right is showed in the following Screenshots.

I made this sample for another thread but it might be useful for you too.
[spoiler]


Important: if the BP that holds this code isn’t in the level at 0,0,0 you have to add “set world Transform” for the StaticMesh
[/spoiler]

Well I’m completely baffled, it tells me its found a instance (print the name), it casts to it fine. But it uses the first instance as the master and does every trace from there, if I try and force it to use the instance I wont it spawns it at 0,0,0.

Gonna leave it for a day (painting house) and come back to it. Got myself a headache.

i too need more info on how t make static mesh instances… and how or ways to use it… too few info out there…