Jump to content

Recommended Posts

Hello there!

I am new on the ksp forum, i've been playing ksp for a long time now and wanted to make some IVAs using rpm and moardv.

I looked up on google and on the ksp forum and using this thread

Spoiler

 

I found out that I have to use Unity 2019.2.2f1 and KSP Part Tools.

       ◄ I install Unity 2019.2.2f1 from unity's site►

       ◄ I deleted and installed a fresh KSP copy from steam so to not havy any issues ►

       ◄ I opened Unity and installed the part tools

       ◄ I removed TextMesh Pro that came pre-installed with Unity, and followed the thread

       ◄ I opened the KSP part tool window in unity and I set up the GameData folder to the GameData folder of the fresh KSP install

        ◄ I spawn a cupolaInternal IVA and this happens►

 

https://ibb.co/5Y1PHvy   

                 ▲ Unity Viewport is bugged with incorrect shaders and textures

https://ibb.co/jz0VV2W

                 ▲ The errors that Unity gives me about missing models/textures

                                           

 

 

I've alredy spent some days looking for some doumentation but all I could find was little to nothing, I hope that I was clear with the problem.

Thanks in advance !

 

Edited by Ailex
Link to post
Share on other sites

One thing to note, last I checked on PartTools, is that it expects different folder paths for use in PartTools exporting vs. use for IVA setup.

E.G.  See the error at the bottom of your screenshot that states it can't find a resource?  Likely you need to set the PartTools configuration data to point to the root KSP directory and not the GameData directory.

Yes, it is a bug in PartTools.  No, nobody has bothered to fix it in the ~5 years I've been dealing with it.  Have always needed at least two Unity Projects; one for parts, one for IVAs.


Edit:  I'll see if I can do some walk-throughs on this / provide screenshots, as my description above is not likely sufficient to fix the problem by itself...

Edited by Shadowmage
Link to post
Share on other sites

@Shadowmage

                Thanks for the reply,

I am not 100% sure on what the error actually is, however after some research I read that Unity doesn't/will not support DDS images, wich is werid since KSP still uses DDS, I have to admit that some threads say that modders should convert to another format (sorry can't find these threads back :[ ) wich kinda makes sense because the Unity console says that  Texture 'texture path' not found!, and these textures are indeed DDS, and that made me think that maybe I picked the wrong unity version, but accordingly to the Official KSP Changelog KSP updated to Unity 2019.2.2f1 since KSP 1.8.

https://wiki.kerbalspaceprogram.com/wiki/Version_history

So maybe am I missing some kind of Unity plugin? I always used Unreal Engine 4/Godot so I have zero knowladge of Unity.

 

I tried to put the Part Tools data to point at the KSP folder itself, but now I have another type of problem. Any Ideas?

https://ibb.co/cLxnz7M

 

Edit: Missclicked the save button

Edited by Ailex
Link to post
Share on other sites
55 minutes ago, Ailex said:

I tried to put the Part Tools data to point at the KSP folder itself, but now I have another type of problem. Any Ideas?

I'll see about firing up part-tools when I get home from work, and see if I can remember how to set it up for use for IVA creation, and do a quick write-up for you on the steps for setup; as stated, it wasn't the most straightforward process when last I worked through it (was a few years ago...).

56 minutes ago, Ailex said:

Unity doesn't/will not support DDS images,

Unity does, especially the recent versions (2017+);  create a material, assign a shader, and it'll let you throw DDS images into the texture slots, no problem.  The KSP shaders however, are not compiled to support their own poorly/inconsistently formatted normal maps; so anything with a normal map will be fubar in the Unity editor (thankfully, not many IVA props use them; and also not a problem if you properly encode your normal maps).  Also, the KSP PartTools package might not support DDS textures (unknown if it can read them; pretty certain it can not export them).  Finally, the Y coordinate on DDS images is inverted, so anytime you use them in the Unity Editor, you have to set the y-axis tiling to ' -1 ' in order to get correct UV mapping (why this is needed for Unity editor and not KSP is unknown).

Hopefully I can at least help you get PartTools working for IVA setup....

 

Link to post
Share on other sites
2 hours ago, Ailex said:

I tried to put the Part Tools data to point at the KSP folder itself, but now I have another type of problem. Any Ideas?

So, apparently PartTools expects to be pointed at the GameData directory for IVA spawning (I believe this is how you first had it configured, which was correct):

hXmdrYh.png

 

However it is not resolving the textures, which is not entirely surprising, but also is most definitely an issue.  Even when I manually replace the DDS images with PNGs they still fail to resolve, so it isn't purely a format issue (but more of a folder/path issue).  Looking at the logs, it also looks like it is failing to resolve quite a few models for one reason or another.  Sadly however, they've hidden all of the PartTools code inside of a DLL, so I cannot say why it is failing.


My take on this, is that there are bugs in PartTools when attempting to use it with Stock models.  Notably, any props that I created load fine, but anything squad related fails to load... (the chair and MFD props and textures in the following image were my creation)

7doJdBC.png

 

I would highly suggest filing a bug-report on the KSP issue tracker on this, noting that you cannot use PartTools to work with the stock IVAs due to the broken references.  Most likely they either have their own custom internal tools that they use, or a custom internal folder layout that does not exactly mimic the KSP runtime layout and this somehow made it into the PartTools code.

 

Sorry I couldn't provide any further answers.  Last I worked on IVAs, these all 'worked' (was still a PITA to setup, but it didn't spawn endless errors...).

I should still note however, that if you are planning on doing custom IVA work (e.g. for your own models), this shouldn't be a problem as it appears to be able to resolve the custom models/textures just fine.  I should also note that your setup will likely still work for exporting standard models / creating the .mu files; its just broken for IVA work on stock models.

Link to post
Share on other sites

@Shadowmage

Yup, correct when my GameData dir is set to KSP's GameData I can spawn IVAs, and I also found out that indeed when I use moardv props they work just fine, both models and textures.

Since I am planning to make only custom IVAs for stock parts, can't I use the broken model just as reference to put the modded props, since the config file that generates (as far as I know) tells KSP that there is a module X placed at location X,Y,Z with X,Y,Z rotation, then I should just remove the stock configs and it should work.

But again looking more at the broken KSP IVA I see that it doesnt load the stock props where it should, no knobs or switches inside the iva, they are all loaded outside and they are are also incorrectly scaled (they are way too gigantic).

At this point I'm thinking of :

           ◄ 1 ~ Reverse enginnearing KSP Part Tools with Ghidra

           ◄ 2 ~ Wait for a fix / don't mod anymore

In all honestly I should be able to reverse it, given enaugh time, since I am a programmer but that is really, really painful.

Maybe I could also try to load a custom IVA from like moardv+ wich includes modded stock ivas and start working from there but I am afraid that part tools will still break it.

 

Welp, still thanks a lot for wasting some of your time on this topic :wink:

Link to post
Share on other sites

I wouldn’t reverse engineer - cause that would be a breach of copyright and T&Cs.

but if you raise a bug report on the bug tracker referencing this thread and me. I’ll look into it.

Link to post
Share on other sites
  • 5 months later...

So this is still a problem five months later, I guess. I searched on the bugtracker and didn't see this mentioned, so I guess I'll make my own. Please look into this @JPLRepo.

EDIT: It seems like this might be the same problem? https://bugs.kerbalspaceprogram.com/issues/18428

Note, I am completely unable to see anything besides wireframe. For example, this is the Mk1-3.

tAsJDKd.png

Edited by theonegalen
Link to post
Share on other sites
12 hours ago, theonegalen said:

So this is still a problem five months later, I guess. I searched on the bugtracker and didn't see this mentioned, so I guess I'll make my own. Please look into this @JPLRepo.

EDIT: It seems like this might be the same problem? https://bugs.kerbalspaceprogram.com/issues/18428

Note, I am completely unable to see anything besides wireframe. For example, this is the Mk1-3.

tAsJDKd.png

The problem is that you are trying to use stock textures in dds format. PartTools doesn't support dds format.

Link to post
Share on other sites
1 hour ago, JPLRepo said:

Hmm, is there any errors in the console? I’ll take another look.

I'm away from my dev computer at the moment, but IIRC there are about eight shader errors that show up when I first open PartTools / Unity. Thank you.

Link to post
Share on other sites

@JPLRepo

I copied the file that you sent Stone Blue into that folder. I don't have the log errors anymore, but still no textures showing up in the shaded or shaded wireframe views. They do, however, show up in the RenderPaths view. And now, if I click on a prop while in the inspector, I'm able to set it to use the standard shader or the Legacy Specular shader, which make the textures show up. The KSP/Specular shader that everything loads in trying to use is marked as "failed to compile" in the shader drop-down selector in the inspector.

Is there a way to make sure everything that loads uses the working shaders? 

Edited by theonegalen
Link to post
Share on other sites

I've also been unable to get Parttools 1.10 to work - after installing parttools I only have three particle shaders. Looking at the shaders in the Unity inspector I see this:

8CQS5C9.png

Was sure it was some stupid mistake I was making but then I notice the failed source file matches the name of the file you say may be missing. Is there somewhere I can get a copy of that file?

A little more detail if it's of any help - the first time I installed parttools the parttool to add to the root GameObject was missing but the shaders were there(???). After removing and reinstalling parttools the parttool was available but only three particle shaders successfully compiled. Re downloading parttools, starting a new project and even Reinstalling Unity (2019.2.2f1) and I was never able to get the shaders, except for the three particle shaders, to show up again. I have no idea why it worked the first time.

Link to post
Share on other sites

@JPLRepo

Update: while clicking around, I found the unity editor log file with the errors:

Updating Assets/PartTools/Shaders/EmissiveBumpedSpecularMapped.shader - GUID: 24569b00aa9bf9d4facac5609e1eb942...
----- Compute hash for Assets/PartTools/Shaders/EmissiveBumpedSpecularMapped.shader.
 done. [Time: 52.321300 ms] 
Shader error in 'KSP/Emissive/Bumped Specular (Mapped)': failed to open source file: 'HLSLSupport.cginc' at line 2
Shader error in 'KSP/Emissive/Bumped Specular (Mapped)': failed to open source file: 'UnityShaderVariables.cginc' at line 6
Shader error in 'KSP/Emissive/Bumped Specular (Mapped)': failed to open source file: 'UnityShaderUtilities.cginc' at line 7
Shader error in 'KSP/Emissive/Bumped Specular (Mapped)': failed to open source file: 'Lighting.cginc' at line 8
Shader error in 'KSP/Emissive/Bumped Specular (Mapped)': failed to open source file: 'UnityPBSLighting.cginc' at line 9
Shader error in 'KSP/Emissive/Bumped Specular (Mapped)': failed to open source file: 'UnityCG.cginc' at line 10
Shader error in 'KSP/Emissive/Bumped Specular (Mapped)': failed to open source file: 'Lighting.cginc' at line 11
Shader error in 'KSP/Emissive/Bumped Specular (Mapped)': failed to open source file: 'UnityPBSLighting.cginc' at line 12
Shader error in 'KSP/Emissive/Bumped Specular (Mapped)': failed to open source file: '../LightingKSP.cginc' at line 35
Shader error in 'KSP/Emissive/Specular': failed to open source file: 'HLSLSupport.cginc' at line 2
Shader error in 'KSP/Emissive/Specular': failed to open source file: 'UnityShaderVariables.cginc' at line 6
Shader error in 'KSP/Emissive/Specular': failed to open source file: 'UnityShaderUtilities.cginc' at line 7
Shader error in 'KSP/Emissive/Specular': failed to open source file: 'Lighting.cginc' at line 8
Shader error in 'KSP/Emissive/Specular': failed to open source file: 'UnityCG.cginc' at line 9
Shader error in 'KSP/Emissive/Specular': failed to open source file: 'Lighting.cginc' at line 10
Shader error in 'KSP/Emissive/Specular': failed to open source file: '../LightingKSP.cginc' at line 33
Shader error in 'KSP/Alpha/CutoffBackground': failed to open source file: '../CustomUnityShadowLibrary.cginc' at Assets/PartTools/Shaders/AutoLight.cginc(6) (on d3d11)

 

Link to post
Share on other sites

hi everyone i'm back after many years and problem, in the past i have made a landing gear with unity at that time.

Since the 1.9 i'm try to playing again, now i'm on 1.10.1 and i have decided to upgrade the DE_IVAExtension mk3 for me with some prop of aset

 ex :     mk3   added some instrument on the right and cosmetic props it's just cfg work and blender placement,  UNITY don't work for now.

i need to create  a new prop primitivebox in asset, trying with blender export mu don't work i don't know or is the problém !! '  (resolved)

Naturaly i have been tented by UNITY again and the latest PartTool in forum.

UNITY version 20192.20f1, TextMesh Pro : TextMesh Pro - Release 1.0.56.2017.3.0b2 (dll only)

- set data dir to Kerbal Space Program/GameData -> Spaces do nothing with lot of error 

NullReferenceException: Object reference not set to an instance of an object
UrlDir+<get_AllConfigs>d__53.MoveNext () (at <0cc91c95455a453ab3e0c1566aca0585>:0)
UrlDir+<GetConfigs>d__55.MoveNext () (at <0cc91c95455a453ab3e0c1566aca0585>:0)
System.Collections.Generic.List`1[T]..ctor (System.Collections.Generic.IEnumerable`1[T] collection) (at <567df3e0919241ba98db88bec4c6696f>:0)
KSPPartTools.GameDatabase.GetConfigs (System.String typeName) (at <0cc91c95455a453ab3e0c1566aca0585>:0)
KSPPartTools.PartToolsWindow.DrawProps () (at <0cc91c95455a453ab3e0c1566aca0585>:0)
KSPPartTools.PartToolsWindow.OnGUI () (at <0cc91c95455a453ab3e0c1566aca0585>:0)
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <567df3e0919241ba98db88bec4c6696f>:0)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <567df3e0919241ba98db88bec4c6696f>:0)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <567df3e0919241ba98db88bec4c6696f>:0)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:359)
UnityEditor.HostView.Invoke (System.String methodName) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:353)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at C:/buildslave/unity/build/Editor/Mono/HostView.cs:329)
UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect, System.Boolean floatingWindow, System.Boolean isBottomTab) (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:374)
UnityEditor.DockArea.OldOnGUI () (at C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:341)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:298)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:483)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:466)
UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:447)
UnityEngine.UIElements.EventDispatchUtilities.PropagateEvent (UnityEngine.UIElements.EventBase evt) (at C:/buildslave/unity/build/Modules/UIElements/Events/IEventDispatchingStrategy.cs:64)
UnityEngine.UIElements.MouseEventDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/Events/MouseEventDispatchingStrategy.cs:59)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:280)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:156)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at C:/buildslave/unity/build/Modules/UIElements/Panel.cs:190)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:255)
UnityEngine.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:78)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

- set data dir to Kerbal Space Program/GameData/squad -> work the internal cabin are here props too

- spawn Mk1-3 don't work and make error in console :

error 1
Cannot clone model 'Squad/Spaces/Mk1-3/model' as model does not exist
UnityEngine.Debug:LogError(Object)
KSPPartTools.PartUtils:CompileModel(UrlConfig, ConfigNode, Single)
KSPPartTools.PartUtils:SpawnSpace(UrlConfig, ConfigNode)
KSPPartTools.PartToolsWindow:DrawSpace(UrlConfig, ConfigNode)
KSPPartTools.PartToolsWindow:DrawSpaces()
KSPPartTools.PartToolsWindow:OnGUI()
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

error 2
Model was not compiled correctly
UnityEngine.Debug:LogError(Object)
KSPPartTools.PartUtils:CompileModel(UrlConfig, ConfigNode, Single)
KSPPartTools.PartUtils:SpawnSpace(UrlConfig, ConfigNode)
KSPPartTools.PartToolsWindow:DrawSpace(UrlConfig, ConfigNode)
KSPPartTools.PartToolsWindow:DrawSpaces()
KSPPartTools.PartToolsWindow:OnGUI()
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

error 3
Cannot create space
UnityEngine.Debug:LogError(Object)
KSPPartTools.PartUtils:SpawnSpace(UrlConfig, ConfigNode)
KSPPartTools.PartToolsWindow:DrawSpace(UrlConfig, ConfigNode)
KSPPartTools.PartToolsWindow:DrawSpaces()
KSPPartTools.PartToolsWindow:OnGUI()
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

only Placeholder, mk1PodCockpit, GenericSpace3 spawn in the scéne,

after  some test :

if i remove this in internal.cfg file in mk1-3 internal

Quote

MODEL
    {
        model = Squad/Spaces/Mk1-3/model
    }

the model spawn in unity, it's ok but no props charged , i don't now how do that !!

tested the SquadExpansion directory, model are here but no spawn all these model have the tag "MODEL" in internal.cfg

same thing with mk2Expansion spaces

but the mod MarkIVSystem by nerta work, there is no tag "MODEL" in internal.cfg file,  again the props don't load with the space !!

the second problem is texture shader don't work the color of texture in unity is pink , in inspector shader is show correctly as for example KSP/specular

but the image for _MainTex are not loaded. it's the same thing for every part or prop.   (ok got it about DDS problem)

If y decide to change the shader in the menu there are a KSP folder with folder PARTICULE within.

the KSP shader are in folder FAILED TO COMPILE/KSP. the ksp shaders are here.

voilà big thank for people make thing in ksp, sorry for my english i'm french (it's very difficult to understand all thing in modding in ksp no french traduction)

bye !

edit

i don't know how configure part tool to have prop loaded with space, and what is the point in menu KSPAssets option KSPdia, how it work ? (found answer in forum)

edit 2 :

found the problem for setting gamedata for part tools

ksp folder 1.10.1 with all mods

y4mhtFduGtFjtmDkNAXGUfYtfWhhz-16wKclKoIN

this gamedat folder don' work in unity 

---

ksp folder 1.10.1 with a few mod for visual enhancement and the mod Bluedog_DB nasa

y4m9Sz7-hAmBNYNneBGMK8sDKhXg7KM10wB3Sx72

setting Set Data Dir to gamedata work , i have all the space and all props super it's working , spawn and internal IVA work for all but without the internal props in internal  

it's seem that a mod problem ! i don't know ! or a number of mod to hight ?????

how setting Part Tools and unity to have props loaded in internal thk !

EDIT 4/09/2020

hello i try an other way to edit props in iva to catch the position and rotation parameter , i and use legacy shader :

y4mRnqkZ9hYusGzutzqTnQQXbGTwXOHeucjhyAmK

And it's seem there are an another problem the uvmap don't load correctly ! i tented to use the probuilder editor open uv editor, but it's work only for probuilder object ....  (ok for that found answer)

Adding PROP using the Save to Config work is great but a little problem with the numeric "."

after save config :

PROP
	{
		name = Primitive_special_beveled
		position = 0,4528,0,2222,-0,6905
		rotation = -0,6997448,0,0,0,714393
		scale = 1,1,1
	}

don't work because for example the number 0,4528 , the correct number is 0.458 

Must be like that :

PROP
	{
		name = Primitive_special_beveled
		position = 0.4528,0.2222,-0.6905
		rotation = -0.6997448,0,0,0.714393
		scale = 1,1,1
	}

 

Edited by stephm
some problem understood
Link to post
Share on other sites

hi ! 

Quote

I seem to have no troubles with this. Using Unity 2019.2.2f1 and latest PartTools

 

happy for you, the screenshot  KSP_Internals.png don't show on page ??,  for my problem with . and i trying to change my windows regional parameter, in format number  changing the symbol decimal to .

and it's the same thing .... i have in cfg file this format number 6,566 not this 6.566

Last EDIT i'm tired of this :

in a doubt , i tested Part tool on fresh install stock of KSP no mod, but this time full english not french translation, and i have the same problem, the uvmap are lost mirrored on Y axis

i think same problem with the ksp addon blender    (resolved , i understood the problem by reading forum)

the prop don't spawn with the copkit, only one and is a location 0,0,0, and of course i have this format number in internal.cfg file 5,65 instead of 5.65

bye !

Edited by stephm
Link to post
Share on other sites

Hello! I am from Russia and I don’t understand English. But somehow I'll figure it out with the translator.)  I also have a problem with ksp shaders in the unity. 

http://piccy.info/view3/13968687/0245362f7252b8fed720c78024d6a77f/

All KSP shaders have been moved to Failed to compiler. If you assign such a shader to the model, it will turn pink. I tried different versions of the Unity - it doesn't work ... Has anyone figured out how to fix this problem? Help me please!

Link to post
Share on other sites
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...