Documentation by TAPgiles

What are limits, and why are they there?

Two aspects that affect all of Dreams creation are the limits of how much memory the PS4 has, and how much the PS4 CPU and GPU can process at once. Limits are placed on how many things can be stored in memory and how many things can be processed so that Dreams doesn't crash when they get too much for the PS4 to handle.

The processing of various things are split up and limited according to how many of those things can be processed by the PS4 before it will definitely have performance problems.

While Dreams runs on the PS4 Pro and PS5 consoles, it is targeted at the PS4 hardware so that anyone can create and play.

Memory​/​Thermo­meter

The memory is split up into categories of objects and data, represented to the creators as sub-thermometers. Also referred to as “thermo.”

These thermometers and sub-thermometers are explained in more detail below.

In edit mode, there is a display in the bottom-left of the screen (by default), displaying 3 thermometers. Each thermometer looks at its own set of sub-thermos and shows the highest percentage out of all of them, giving an overall sense of how much room the creator has left to add more things to memory.

These are shown as small circles, partially filled to indicate that percentage.

When a thermometer increases or decreases by 1% or more, the thermometer will pop up and display how much the category changed by.

Hovering over the thermometer will make the circles expand into bars, again partially filled for how much memory has been used. Hovering over a bar will show the category’s usage as a percentage, rounded up.

Use the UI Interaction control on the thermometer to open the thermometer view focused on that category. This shows percentages with up to 2 decimal places.

It also has a “More Details” button. The More Details view toggles viewing the sub-thermos.

# Limits with No Thermometer

Some limits are built-in, but do not have thermometer read-outs.

# Wire Nodes

There is a limit of 8192 wire pins allowed in edit mode at once. When more pins are created (eg. when cloning an object that has wire pins) those pins will not exist. This doesn't affect the behaviour the wires.

# Strokes per Painting

A painting can contain up to 2048 individual strokes. Single-fleck strokes still count as strokes.

# Active Puppets

When more than 26 puppets with at least one linked heel are powered in a scene, a performance warning shows but no changes come from this. When there are more than 34 such puppets, a performance warning shows. Whether they have linked heels or not, the ones that were created last will also stop working correctly concerning collisions and finding the ground beneath them to fall to.

# Gameplay Memory

The transform (position, etc.), and tweak menu settings, and state of all objects in the creation. (Mm) (Ls)

This is the only category that can change during play, when objects are created by Emitter gadgets and destroyed by Destroyer gadgets.

# Things

The transform (position/rotation/scale) of an object, and its settings and state in memory. There is a pool of memory just for “things” data; the percentage is how much of that is currently filled. (Ls)

Most objects cost 0.0061% of this limit, allowing for use of ~16384 objects. This includes all objects listed on the Gadgets & Objects page, apart from the following objects which cost more as listed on their respective pages: Text gadgets, Puppet, Sound, and Controller Sensor.

As almost all objects cost the same of this limit, it's usually fine to not worry about how much one object costs vs another object. Instead, think more about the number of objects used in total.

In update version 2.54, Dreams saw significant thermo reductions in the use of several of the larger objects, most drastically affecting artists, musicians, and sound designers:

  • Sculpts & Paintings: 33% less memory.
  • Sound: 40% less memory.
  • Text gadgets: 36% less memory.
  • Puppets: 65% less memory.
  • Controller Sensor: 33% less memory.

# Unique Stamped Elements

A limit of 256 links to external element creations. Importing an element counts towards this limit. (Ls)

It does not matter if an imported element contains other imported elements; there is only 1 link to the containing element, so it only counts 1 towards this limit.

If you needed to import 100 trees into a scene, doing so one at a time will use up 100 of the 256 limit. But if you first imported them into an element containing those 100 trees, and then import that 1 element into your scene, that will count as 1 of the 256 limit but you still end up with 100 different trees in the scene.
For this reason, it may be advantageous for sizable kits to include an element that contains all elements in the kit so that people can import that and still have room on this limit for lots of other imports.

Copies of imported elements and changes to already imported elements do not count towards this limit.

Deluxe, Basic, and Platforming Puppets are actually imported elements, so these count towards this limit. The Deluxe Puppet from the collection and from the menu are the same element. Effect Fields are also imported elements.

# Doorways

A limit of 20 doorways. (Ls)

# Connectors

A limit of 1024 connectors. (Ls)

# Wires & Animation

A pool of memory for thin or fat wires and hidden wires between objects. Each wire uses 0.006184895833333333% of this limit, allowing a maximum of 16384 wires. (Ls)

Hidden wires are used for animation gadgets to link to settings of objects. (See Keyframe, Action Recorder, Possession Recorder.) And for Variable gadgets to connect to Variable Modifier gadgets.

# Graphics Memory

Sculpt surface data, painting fleck data, and text displayer gadgets data (including similar gadgets), as well as some “shared” data between objects. (Mm) (Ls)

# Sculpture Data

A pool of memory containing voxel data (tiny cubes) that are used to render a sculpt and its surface flecks, as well as for collisions with non-movable sculpts. (Ls)

Unique sculpts (sculpts for which any instruction, shape, colour, etc. is different) have their own separate allotment of voxel data and so use their own chunk of this memory. They cost surface area × surface detail level. The surface detail level can be adjusted for the entire object using the Adjust Detail tool or adding Looseness edits to affect the detail of areas of the surface.

“Live” sculpts point to the same exact block of memory and use the same voxel data. This means they use no extra memory when edited, and when that block of memory is changed by editing a different live sculpt of the same object, all other live sculpts will also look different.

When a sculpt clone is edited, it becomes unique and costs its own lot of sculpture data. If two sculpts are created separately but have identical edits to them, they are considered identical to each other and so will only cost 1 lot of sculpture data. When edited, a live clone of another sculpt will change the original sculpt’s data, instead of becoming unique.

# Sculptures

A pool of memory containing a list of all unique sculptures. Each unique sculpture uses 0.024887218% of this memory, allowing approximately 4096 unique sculpts in memory at once. (Ls)

# Sculpture Physical Shape

How many collision spheres can be stored at once. These are used to simulate collisions for movable and collidable sculpts. (Ls)

# Shared Memory

A pool of memory used for sculptures, paintings, animations and audio. Pretty much “stuff that uses the same block of memory.” It’s hard to get more specific about this. (Ls)

# Paint

A pool of memory containing point data for strokes and stamps in paintings, including colour and finish. This data is used to render and animate paintings. (Ls)

Unique paintings (paintings for which any stroke data is different) have their own separate allotment of point data and so use their own chunk of this memory.

“Live” paintings point to the same exact block of memory and use the same point data. This means they use no extra memory when edited, and when that block of memory is changed by editing a different live painting of the same object, all other live paintings will also look different.

# Audio Memory

Memory used for audio data. (Ls)

# Audio Memory

A pool of memory used to store audio recordings. This can store an estimated 3 hours 30 minutes of audio. (Ls)

This is the limit of all audio even if it is not included in a slice and so is not playable.

# Audio Download Size

A limit on how much audio data is allowed to be downloaded for the creation, up to an estimated 1 hour 30 minutes. This is in place so that it does not take a long time to download data before playing a scene.

Audio made by the creator “Media Molecule” in-game is included in all installations of Dreams, and so does not need to be downloaded separately, and does not count towards this limit.

# Unique Sounds Limit

A limit of how many audio recordings can be imported, similar to Unique Stamped Elements. The limit is an estimated 2048 unique sounds.

# Audio Readiness

In order for a slice to play part of an audio recording, that part of the audio recording must be readied (put into memory ready to go). There is a finite amount of memory to hold this audio, which is represented by this thermometer.

Per second of audio readied for slices to use, 0.0875% of the assigned readied audio memory is taken, allowing approximately 1142 seconds of readied audio at any given time.

If more than one slice in the scene required the same chunk of audio to be readied, that audio will only be readied once, and used by both slices.

This is a soft limit, and so has different rules to the other thermometers. The creation can be saved even if it reaches more than 100%. But not all the audio contained in the creation will play correctly depending on the circumstances.

The Sound Readiness “more info” view shows the most expensive sound channels with their percentage of readiness used. And a list of the top 20 most expensive sound gadgets along with their names and percentage of readiness used up. Clicking on a name will go to the gadget in the scene, or its containing gadget, and show a pulsing visual over it to easily locate it.

Each sound gadget with Row Mapping enabled will try to ready one slice for each row.

Those without Row Mapping enabled will try to ready only 1 slice. If Slice Keytracking is on and the slice that matches the note to be played best is not readied, the readied slice will be played and pitched up or down to match as well as it can.

After playing the note, another slice will be unreadied to make room in memory, and the slice it should have played will be readied. So if incorrect slices are playing or playing at the incorrect pitch, adding a sound gadget with the required slices and having it play those notes ahead of time will prompt Dreams to ready those slices for when they are actually needed later on. You can make that “loading” sound gadget have 0 volume so the player does not hear it.

If no audio for any slice has been readied, the note will not play or will play delayed.

If over 100% of the memory assigned for this purpose is required to ready all required audio, not all audio will be readied and The “Delayed Sounds” limit warning is shown. Slices that require that audio may not play, may play delayed, or may play incorrectly. A link to the Sound Mode thermometer is included, to go straight to the Sound Readiness thermo.

# Performance

A number of processing tasks require more time to perform. Such features or objects are limited, so that the hardware can still perform the tasks without crashing.

# Framerates

Different aspects of Dreams is processed at different speeds. Logic is processed 30 times per second, physics is processed 120 times per second, and sound is processed 200 times per second.

# Frame Lag

Some operations will update on the next frame instead of the frame their outputs should change. These include:

Other operations will update immediately.

Silent Limits

Some limits simply apply, but do not show a warning.

# Max Physical Size

The maximum distance any object can exist from the origin of the scene (meaning 0,0,0 on the coordinate system, the centre of the scene) is somewhere between 5555.4 and 5555.5 metres. Any further than that and the object will be deleted, with a message saying “Object deleted - centre was too far from origin.”

You can visualise the scene’s origin by turning on the Floor Guide.

# Point-seeking Zone Limit

There is no detectable limit for how many zones can look for points (tags, camera, imps) at once. (As in, if there is a limit you hit the thermo limit of that number of gadgets before reaching the performance limit anyway.) (Tg)

# Shape-seeking Zone Limit

There is a limit of 255 zones looking for “shapes” (sculpts or groups) that can be active at once in a scene, shared across any gadgets that use such zones. (Tg) This applies to anything that detects sculpts or groups. (Tg)

This does not apply when a zone is scene-wide, as no checks are required to figure out if it’s inside or outside the zone’s shape. If it exists and is powered, it will be detected.

Raycasts

A maximum of 1023 Laser Scope gadgets can function at once. This limit is also used by puppets for finding the ground, procedural animation, etc.

In-Scene Text

A maximum of 1023 text gadgets can be rendered In-Scene.

Warned Limits

When these limits are exceeded, extra uses of the feature or extra objects are ignored so that the number of that task that needs to be processed is still within the limit. For most limits, when this happens a warning is shown to the creator (not for normal players). Use the UI Interaction control on the warning to see all warnings explained, including the cause, and possible solutions.

You can use this as a prompt to cut down on using that feature so much, organising your scene differently so it's not all used at once, or controlling how that feature is cut down on on what are of the scene the player is, for example.

However, Dreams automatically cuts down on the feature usage when necessary anyway. So if the way it is doing that for your scene is acceptable, you could simply ignore that warning.

# Physics Data

A maximum of 65536 collision spheres can be used to simulate the collisions of movable objects. This includes sculpts that are themselves movable, and non-movable sculpts inside movable groups or objects. Objects beyond this limit will not collide.

Note that an object that is collidable but has all “collides with” labels turned off is still “collidable” and so will still have collision spheres and count towards this limit.

No limit is found when testing non-collidable movable objects. (The limit of how many sculpts can exist is reached first.)

# Physical Paint

There is a maximum of 2048 on-screen strokes physically simulated at once. Single flecks count as simulated strokes.

When more come into view beyond that limit, that painting will not be physically simulated until one that is being physically simulated goes out of view to leave room in the limit for more.

# Sculpts

There is a limit to how many flecks can be rendered on sculpt surfaces. When there are too many flecks, some sculpts will only render the inner hull form, as if viewed from further away. This shows the “Sculpts” performance warning.

Looseness or lower detail makes flecks appear bigger while decreasing the number of flecks drawn, so this can avoid this problem.

# Sun Shadow

When too many shadow-casting sculpts are reached by the sun, some sculpts will not cast shadows from the sun.

# Spotlights

Each spotlight whose cone touches a sculpt or painting must be calculated while rendering that sculpt or painting. The number of spotlights, spotlight-lit objects, and how many flecks must be rendered of those objects all increase rendering time.

There is a limit of 64 spotlights that can be rendered at the same time; any more and those furthest from the player’s view will not be rendered.

# Shadow-Casting Spotlights

There is a limit of 16 spotlights that can cast shadows at the same time; any more and those furthest from the player’s view will stop casting shadows.

# Storage

Concerning data stored locally on the console.

# Local Storage

A maximum of 256 versions of creations can be stored locally, to a maximum of 1 GB of data.

Use the delete tool to remove local versions, or delete individual versions.

Persistent Variables Stored

A maximum of 128 stored values for persistent variables can be stored on a player’s system for a dream.