Beta versions are not as thoroughly tested as stable

Beta versions are not as thoroughly tested as stable

Beta branch

Construct 3 r348

Text/SpriteFont range tagging; new examples; new script APIs; performance improvements & more

04 July, 2023 ()

Email Me New Releases

Don't miss out on the latest and greatest new features in Construct 3

Notes

This week's beta release has a lot of improvements! First of all there's a new feature to tag ranges in Text and Spritefont objects. In short this means you can use BBcode like "Hello [tag=foo]world[/tag]". This applies the tag "foo" to just the word "world". Then you can do things like detect if the mouse is over that tag (e.g. for a hover highlight), or get the size and position of that tag (e.g. to position another object by it), and more.

This release also includes 5 new examples - 'Box Breaker', 'Collect the pages', 'Snowboard 3D', 'Time travel 3D' and 'Toolbox wheel'. As ever find them in the New section of the Example Browser!

There's also new script APIs that allow loading custom image content in to Sprites, Tiled Backgrounds and Tilemaps, as well as new script APIs for the range tagging feature of Text and SpriteFont; performance improvements for timeline editing and Text objects; a new 'Random' UID numbering mode to work better with source control; and as ever a big batch of bug fixes. Happy testing!

Like this Release?

Let us know with a thumbs up!

UpvoteUpvote 41 DownvoteDownvote
Launch r348

Changelog iconNew Additions

Not favoritedFavorited Favorited 26 favourites
Text/SpriteFont: 'Has tag at position' condition, 'TagAtPosition' expression
Not favoritedFavorited Favorited 14 favourites
Add 5 new example projects
Not favoritedFavorited Favorited 14 favourites
Text/SpriteFont: expressions to get size and position of tags by index and tag count
Not favoritedFavorited Favorited 13 favourites
Project properties: 'UID numbering' property, allowing a new 'Random' UID numbering mode

Changelog iconChanges

Not favoritedFavorited Favorited 3 favourites
Rename 'Beholder fortress' example project to 'Ancient Watcher fortress'
Not favoritedFavorited Favorited 3 favourites
MobileIAP: deprecate 'Transaction' expression as not currently supported since update

Changelog iconBug Fixes

Not favoritedFavorited Favorited 5 favourites
Properties Bar: did not refresh container properties after deleting object folder
Not favoritedFavorited Favorited 6 favourites
Platform: 'On landed' incorrectly triggered when hitting ceiling (regression r346)
Not favoritedFavorited Favorited 4 favourites
Properties Bar: could incorrectly show properties after closing project
Not favoritedFavorited Favorited 4 favourites
MobileIAP: did not always trigger 'On purchase failed' correctly
Not favoritedFavorited Favorited 4 favourites
Layout view: possible crash after adding instance to overridden layer
Not favoritedFavorited Favorited 5 favourites
Possible crash closing projects
Not favoritedFavorited Favorited 3 favourites
Eases: deleting a parent folder not properly deleting a custom ease
Not favoritedFavorited Favorited 3 favourites
Timelines: crash duplicating a timeline with nested content
Not favoritedFavorited Favorited 3 favourites
Timeline bar: crash adding property tracks refering to plugin properties (regression r347)
Not favoritedFavorited Favorited 3 favourites
Timeline bar: sometimes clicking on keyframes was not showing corresponding properties in the Properties bar
Not favoritedFavorited Favorited 3 favourites
Timeline bar: crash closing a project while an audio track is still being decoded
Not favoritedFavorited Favorited 5 favourites
Z Order Bar: possible crash moving instances between layers

Changelog iconPerformance Improvements

Not favoritedFavorited Favorited 8 favourites
Layout view: improve performance when timeline editing mode is turned on
Not favoritedFavorited Favorited 15 favourites
Text objects: further improve performance when scaled very small

Changelog iconScripting updates

Not favoritedFavorited Favorited 7 favourites
Sprite: add replaceCurrentAnimationFrame(blob)
Not favoritedFavorited Favorited 7 favourites
Tiled Background & Tilemap: add replaceImage(blob)
Not favoritedFavorited Favorited 7 favourites
Text/SpriteFont: added hasTagAtPosition(tag, x, y), getTagAtPosition(x, y)
Not favoritedFavorited Favorited 7 favourites
Text/SpriteFont: added getTagPositionAndSize(tag, index), getTagCount(tag)

Share Construct 3 Release r348 Now

  • 12 Comments

  • Order by
Want to leave a comment? Login or Register an account!
  • Has tag, wow! I've been faking this with a hidden sprite for so long now!

  • amazing update!

    Text tags position and performance improvements plus source control fix is perfect!

  • Thank you very much for the update!! The Text Tag feature is very useful!! And Viridino Studios always maintains high-quality templates! Thank!

  • btw is there a reason random UID isn't the default now? I don't see any downsides, so to me it makes sense as default to avoid some merge conflicts even if people forgot to set it.

      • [-] [+]
      • UpvoteUpvote 6 DownvoteDownvote
      • Ashley's avatar
      • Ashley
      • Construct Team Founder
      • 6 points
      • (0 children)

      For small projects it means typing in much larger numbers which I thought makes it a bit more cumbersome. I'm also reluctant to change any really long-standing features by default as it messes with people's expectations - there's years and years of tutorials, lesson plans, videos etc. which might talk about UIDs working differently, or somehow be broken if they expect incremental UIDs, so I try to be cautious about changing core things like this by default.

  • Text tag, a dream that came true. Thank you!

  • BETA BONUS!

    The next game I am going to make is a remake of Devastators (arcade game), and the Box Breaker demo on this new beta is basically the start of it! Thank you guys!

  • Checking condition every tick but dont do action affects performance or not? Tks

  • Improvement for the amazing text tag system:

    new condition `has any tag at position` (or a symbol like -1 we can use for any tag)

    and a expression like `text.currentTag` that returns the tag in that event.

    This would allow us to create one event that handles multiple tags, for tooltips etc. Currently we would need to create a new event per tag (or loop over a list).