(39) 's Extra Blueprint Nodes for You as a Plugin, No C++ Required!

Thank you!!! You’re a hero.

Thanks you .
Could you add some basci encryption method on that blueprint :
SaveStringTextToFile - Save human-readable text to a file of your choosing.
could avoid players to modify game game parameters discovering a file with plain easy ot understand text.

Thanks again, ! :slight_smile:

You’re welcome!

Hee hee!

I will work on when I get a !

Great to hear from you !

It was a lot of work for me to get the vertex snap up to 4.3 due to API changes, I am glad you appreciate it and the BP library plugin!

:slight_smile:

44+ Extra BP Nodes For You!

No c++ required!

No compile required!

Download and plug in!

:slight_smile:

Hey , could I bother you for a Plugin that removes the Iteration Limit(or makes it a trillion iteration)? Hoping by 4.4 it will be an project setting, but that is probably 2 months away. Appreciate any help you can provide! :slight_smile:

Can you explain more about what is happening where you are hitting the limit?

you can’t break up the action into several ticks, doing sections of your whole endeavor over say 5 ticks ?

If you are hitting the limit for one tick , cant you just use several?

what exactly is the use case?

:slight_smile:

I have tried splitting it up with delays, separate events, etc without success. I am not using Event Tick.

I am generating tile maps, such as those in Civilization 5. I am performing about 1500 iterations per tile, with 800 tiles on the second smallest map which is where I first hit the limit. I literally need the loop limit increased to a trillion or removed entirely.

“I have tried splitting it up with delays, separate events, etc without success. I am not using Event Tick.”

A delay wouldn’t help, but a Timer would!

Have you tried using a timer function?

I am not trying to avoid checking out lifting the loop limit, I am just not convinced it is even possible.

What about a timer function?

That should do it!

You don’t need Tick if you use a timer function

Show me your timer function setup if you’ve / once you’ve tried it :slight_smile:

I will see if I can finish getting Timers to work tomorrow. Food poisoning is kicking my butt right now.

Ok, I got timers calling custom events after 1 second and I put them on both sides of my heaviest function.

The problem we are not going to get around is that I have a ForEachLoop with an 800 member array calling 2 other ForEachLoops, with arrays of a combined ~200 members, each of which compares vectors and performs math 10-20 times on the original 800. I am easily breaking 1 million iterations in function alone. Considering is my second smallest map, there isn’t a gimmick that will keep me from hitting iteration limit at some point.

I had found a plugin that removes the iteration limit at one point, but never got it to work because it wasn’t updated from 4.0/4.1.

Do you know the name of the property as I would find it in the C++ ?

It’s clearly not an ini file setting or you wouldn’t need a plugin for it, right?

I am searching myself now

What I’d do if I had that intense of an operation would be to break it up into chunks of actions that I do per tick.

So use for loops instead of for each, and track the indicies

each tick, process, say 1000 loop iterations, keeping track with a BP-global variable for the current index.

your goal amount / for each for loop will be set at the beginning of the tick, to be current index + chunk size.

then you enter the for loop and iterate, and then, in BP, you will have to manually increment the current index by your chunk size at the end of the tick.

is easy to do if use for loop!

And if your chunk size is a variable, you can decide over what chunk size is best for performance!

I’d say start with 100-1000 range somewheres.

doesn’t your game completely stall when you run your iterations of in loops in 1 tick?

if you break it up can avoid stalling and have a progress bar of some kind showing current/total loop iterations!

Here is a link to the plugin I tried getting to work: /AndrewScheidecker/BrickGame/tree//Plugins/SuperLoopLibrary

That seems like an unnecessary complication just to get around a built-in engine stop light. Realize that my high-end map sizes require 20,000+ tiles. If I were to use my current generation method on a map that size, it would be ~800 million iterations. There are efficiencies to be had on maps that size, but splitting my generator up into hundreds of ForLoops is not one of them.

In any case, is a map generator that only runs one at the beginning of the game. It is not uncommon for these things to take several minutes to complete.

I think you misunderstand my method

You don’t write hundreds of for loops!

You have 1 for loop, that processes a chunk of data every tick

and you determine the chunk size

the result is that you can thus have a progress bar as a UI element that gets updated every tick by your chunk size, showing you the progression of the building of your level

as your levels get larger will be an important , as you dont want your game to hang for several minutes.

You might understand what’s happening but other users wont, so having a progress bar is really useful!

I am going to look into the for loop limit itself ofc

but I am just letting you know you really should consider using a chunk size and not doing the whole thing in a single tick, to avoid hangs.

I could actually make a plugin that breaks up work flow for you, where I am organizing the per-tick actions and chunk size

I could make it a UObject or an Actor that spawns into world (cause I have to store data between ticks), and you could make your current class a subclass of class.

What is the class of your current workhorse class where you are doing ?

Can it easily have its highest level class reparented to AActor or UObject?

I would give you a BP Implementable Event where you can run the per-loop cycle actions, whatever they are. The event would return the current index in the loop

PS: I made the node you requested btw

**New Node

Runaway Loop Resetter**

Use node to get around the loop iteration count, if you really really need to.

I don’t personally recommend node unless you absolutely know what you are doing and absolutely need it.

I personally recommend breaking up your long loops over several ticks, processing a chunk of your total loops per tick.

You can see my whole opinion on subject here:

However since I feel it is my goal to make sure people have maximum Power in Blueprints, here is the node!

[FONT=Comic Sans MS]:heart:

PS: new node is now part of my main download in my original post of thread :slight_smile:

I was already planning a progress bar, though divided up by function rather than more discrete chunks(IE Sea Level, Elevation, Temperature, Precipitation, Coasts, Rivers, etc). I will keep your idea in mind if individual functions at larger map sizes require it! :slight_smile:

That is an interesting offer. I actually do intend to get the heavier pieces of generator moved into C++ eventually, especially for performance reasons.

I don’t necessarily want to move things into C++ just yet though. Generally because I can’t maintain it myself and I am still heavily prototyping. So, I don’t want to move it to C++ until I either have to, or I am 100% sure of the route I am taking with a particular system(which would basically be many months from now).

I saw your post in the Got Skills forum though, so perhaps in the (somewhat distant)future I may hit you up for some C++ work! :slight_smile:

I do appreciate any help you can provide with a plugin to remove the limit though. I haven’t been able to create a giant version of my map since the early days of my generator and would like to see how things are holding up performance wise on the larger generations.

Whenever you’d like BP or C++ paid assistance let me know!

Link to my portfolio

I love coding stuff in C++ and exposing it for people to use in Blueprints, using just plugins

Makes things super easy for people!

Here is the node you requested:

Thanks , works like a charm! Actually, I like that you made it into a node because it reminds me how big some of my functions are when they pop me with a loop limit fault at high map sizes. :slight_smile:

baby took 1 minute 49 seconds to generate. At least 50 million iterations. 120x60 (7200 tiles, or 1/3 the size of a gigantic map)


When I start carving continents and other landmasses into those waters the iteration count should drop, but I have plenty of things coming that will raise it back up again. :slight_smile:

Ooooh wow!

Great picture!

And a wonderful tool you are making!

Looks like it is developing very rapidly!

Thanks for sharing !

:slight_smile: