Identifying device model in blueprint?

How can i identify whether it is an iPhone or an iPad air in blueprint?i cannot use deviceprofile this case because i want to customize such as changing level actors specific settings for different devices.Thanks very much!

Hello his333555,

Typically you would not want to do this through blueprint. Because each platform require it’s own unique provisions. What you would want to do is create a project that is developed for a specific device. So, adding the provisions for an IOS devices and trying to package for Android would not work.

The only function inside of BP that can give you what you are asking is the Get Unique Device ID. You can combine that with a print function, or whatever you want, and whenever you play with the device attached it should print that ID on screen.

So, in conclusion what you will have to do is create a project specific to that platform. You may be able to create a copy and then add provisions to be able to package out to other devices. Don’t quote me on that one.

Thank you,

Thanks very much.So you mean that I have to create 3 projects if I want to create games onplus ipad air and each have their unique blueprint codes?

Hello His333555,

If you are packaging to IOS devices you should only need to have provisions for IOS. I believe that choosing the IOS packaging option should cover the Iphone6, plus, and ipad.

Thanks,so you mean that I can change per-iosdevice settings in provisions?Sorry for that I’m not quite understood…

Thanks for spending time replying to me.Actually i know I can with a click of packaging to ios(setting provisions correctly),all the ios devices can install that same ipa file.But I mean that I want in the same project also the same ipa file,every different ios model can have different settings,for example,I want iphone6 plus to use opaque material and ipad air to use the translucent material, or I want iphone6 to use 1 as the int variable,ipad air2 to use 2 as the same int variable…

Ok, So you can choose to package out to IOS devices. This means, if you have the provisions and license to package to IOS it will package across the IOS devices that you have permission to package to. I believe this covers a wide range of IOS device from iphone6, to iphone4, and ipadAir and so forth. It is a licenses that is an array of different devices and not just one.

Ok, I understand a little better now. I do not believe that is a current feature for UE4. I believe the system works as a creation to package/launch system. I know it’s possible to set up different methods in blueprints to change your scalability to change your resolution once you have packaged.

What I think you could do is make a material with a material instance. Then you could switch the type of material from opaque to translucent or whatever and then change the device out that you are packaging to. That should work for something simple. I do not believe it’s quite what you were looking for thought.

I can enter a feature request for you. What you will need to do is type out exactly what you are trying to achieve and I can enter that for you. I cannot guarantee a time frame for and if it will be an actual feature.


Not a problem. I will put in the request and hopefully it will be implemented.

Thank you very much!So currently I have to change every specific settings for different devices and package them separately.I’m looking forward to that feature.Thanks again for your guys’ greate work!

Thank you!That’s really a good way in materials to switch between es2 and es3.1 ios devices,but may not be helpful on same feature level device.I’ll use that for switching between es2 and metal devices.
By the way could you please take a look at this issue:(4.9.1 BUG)Sphere trace for objects always fail with newly created objects type - Blueprint - Epic Developer Community Forums
Thanks again!

Hey his333555,

If you are trying to only trying to change the materials have a look at this. What you will do is add a value like a variable1 with a variable one to all of the inputs for this node. Then you add it to whatever slot for the deferred render you want. The engine then determines what you are packaging out to. It says ok I can’t do this through HML5 so I will switch to whatever is best for that device. Give it a go for say diffuse or metallic and let me know what happens.