Posted November 25, 201410 yr So I have a strange crash with making my items spawn particles when they get hit using this: @Override public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase hit, EntityLivingBase player) { Random r = new Random(); for(int i = 0; i < 10; i++) ClientProxy.spawnParticle(EnumParticlesClasses.SNOWBALL_POOF, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F, false); return super.hitEntity(par1ItemStack, hit, player); } public static void spawnParticle(EnumParticlesClasses particle, World worldObj, double posX, double posY, double posZ, boolean b) { try { EntityFX fx = null; if(b) { fx = (EntityFX)particle.getParticle().getConstructor(World.class, double.class, double.class, double.class).newInstance(worldObj, posX, posY, posZ); } else { fx = (EntityFX)particle.getParticle().getConstructor(World.class, double.class, double.class, double.class, double.class, double.class, double.class).newInstance(worldObj, posX, posY, posZ, 0D, 0D, 0D); } Minecraft.getMinecraft().effectRenderer.addEffect(fx); } catch (Exception e) { e.printStackTrace(); } } public enum EnumParticlesClasses { LAVA(EntityLavaFX.class), SMOKE(EntitySmokeFX.class), FLAME(EntityFlameFX.class), SNOWBALL_POOF(EntitySnowShovelFX.class); private Class particle; private EnumParticlesClasses(Class<? extends EntityFX> clazz) { particle = clazz; } public Class getParticle() { return particle; } Crash report: net.minecraft.util.ReportedException: Ticking Particle at net.minecraft.client.particle.EffectRenderer.updateEffects(EffectRenderer.java:102) ~[EffectRenderer.class:?] at net.minecraft.client.Minecraft.runTick(Minecraft.java:2135) ~[Minecraft.class:?] at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1028) ~[Minecraft.class:?] at net.minecraft.client.Minecraft.run(Minecraft.java:951) [Minecraft.class:?] at net.minecraft.client.main.Main.main(Main.java:164) [Main.class:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_67] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_67] at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) [launchwrapper-1.11.jar:?] at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.11.jar:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_67] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_67] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_67] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_67] at GradleStart.bounce(GradleStart.java:107) [start/:?] at GradleStart.startClient(GradleStart.java:100) [start/:?] at GradleStart.main(GradleStart.java:65) [start/:?] Caused by: java.lang.NullPointerException at net.minecraft.entity.Entity.moveEntity(Entity.java:692) ~[Entity.class:?] at net.minecraft.client.particle.EntitySnowShovelFX.onUpdate(EntitySnowShovelFX.java:71) ~[EntitySnowShovelFX.class:?] at net.minecraft.client.particle.EffectRenderer.updateEffects(EffectRenderer.java:79) ~[EffectRenderer.class:?] ... 17 more [16:58:31] [server thread/INFO] [FML]: Holder lookups applied [16:58:31] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:388]: ---- Minecraft Crash Report ---- // Oh - I know what I did wrong! Time: 25/11/14 4:58 PM Description: Ticking Particle java.lang.NullPointerException: Ticking Particle at net.minecraft.entity.Entity.moveEntity(Entity.java:692) at net.minecraft.client.particle.EntitySnowShovelFX.onUpdate(EntitySnowShovelFX.java:71) at net.minecraft.client.particle.EffectRenderer.updateEffects(EffectRenderer.java:79) at net.minecraft.client.Minecraft.runTick(Minecraft.java:2135) at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1028) at net.minecraft.client.Minecraft.run(Minecraft.java:951) at net.minecraft.client.main.Main.main(Main.java:164) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at GradleStart.bounce(GradleStart.java:107) at GradleStart.startClient(GradleStart.java:100) at GradleStart.main(GradleStart.java:65) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at net.minecraft.entity.Entity.moveEntity(Entity.java:692) at net.minecraft.client.particle.EntitySnowShovelFX.onUpdate(EntitySnowShovelFX.java:71) -- Particle being ticked -- Details: Particle: EntitySnowShovelFX, Pos (784.3270931128927,4.699137304786724,1217.2007122882326), RGBA (0.9067198,0.9067198,0.9067198,1.0), Age 4 Particle Type: MISC_TEXTURE Stacktrace: at net.minecraft.client.particle.EffectRenderer.updateEffects(EffectRenderer.java:79) -- Affected level -- Details: Level name: MpServer All players: 1 total; [EntityClientPlayerMP['The_SlayerMC'/203, l='MpServer', x=786.55, y=5.62, z=1218.62]] Chunk stats: MultiplayerChunkCache: 625, 625 Level seed: 0 Level generator: ID 01 - flat, ver 0. Features enabled: false Level generator options: Level spawn location: World: (727,4,1129), Chunk: (at 7,0,9 in 45,70; contains blocks 720,0,1120 to 735,255,1135), Region: (1,2; contains chunks 32,64 to 63,95, blocks 512,0,1024 to 1023,255,1535) Level time: 5833 game time, 5833 day time Level dimension: 0 Level storage version: 0x00000 - Unknown? Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false) Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false Forced entities: 54 total; [EntityItem['item.item.leather'/139, l='MpServer', x=821.63, y=4.13, z=1226.41], EntityXPOrb['Experience Orb'/141, l='MpServer', x=818.69, y=4.25, z=1222.44], EntityItem['item.item.beefRaw'/140, l='MpServer', x=820.56, y=4.13, z=1226.84], EntityItem['item.item.beefRaw'/143, l='MpServer', x=825.91, y=4.13, z=1274.66], EntityItem['item.item.leather'/142, l='MpServer', x=827.03, y=4.13, z=1274.88], EntityItem['item.item.beefRaw'/152, l='MpServer', x=846.84, y=4.13, z=1239.47], EntityXPOrb['Experience Orb'/153, l='MpServer', x=846.13, y=4.25, z=1243.03], EntityXPOrb['Experience Orb'/154, l='MpServer', x=847.78, y=4.25, z=1237.97], EntityItem['item.item.feather'/155, l='MpServer', x=839.84, y=4.13, z=1241.91], EntityItem['item.item.chickenRaw'/156, l='MpServer', x=838.91, y=4.13, z=1242.91], EntityXPOrb['Experience Orb'/157, l='MpServer', x=841.81, y=4.25, z=1240.13], EntityItem['item.item.beefRaw'/144, l='MpServer', x=830.72, y=4.13, z=1273.38], EntityXPOrb['Experience Orb'/145, l='MpServer', x=827.22, y=4.25, z=1270.13], EntityXPOrb['Experience Orb'/146, l='MpServer', x=826.78, y=4.25, z=1267.03], EntityItem['item.item.beefRaw'/147, l='MpServer', x=825.28, y=4.13, z=1280.34], EntityXPOrb['Experience Orb'/149, l='MpServer', x=827.91, y=4.25, z=1286.94], EntityItem['item.tile.cloth.white'/150, l='MpServer', x=846.72, y=4.13, z=1238.75], EntityItem['item.item.leather'/151, l='MpServer', x=846.69, y=4.13, z=1239.81], EntityPig['Pig'/174, l='MpServer', x=867.09, y=4.00, z=1166.81], EntityChicken['Chicken'/172, l='MpServer', x=866.47, y=4.00, z=1164.44], EntityHorse['Horse'/163, l='MpServer', x=857.56, y=4.00, z=1188.81], EntityChicken['Chicken'/162, l='MpServer', x=861.53, y=4.00, z=1161.53], EntityChicken['Chicken'/165, l='MpServer', x=851.63, y=4.00, z=1189.44], EntityChicken['Chicken'/164, l='MpServer', x=853.59, y=4.00, z=1169.56], EntityChicken['Chicken'/184, l='MpServer', x=864.38, y=4.00, z=1178.41], EntityChicken['Chicken'/178, l='MpServer', x=867.78, y=4.00, z=1180.28], EntityPig['Pig'/182, l='MpServer', x=866.16, y=4.00, z=1168.41], EntityHorse['Horse'/180, l='MpServer', x=862.25, y=4.00, z=1184.59], EntityChicken['Chicken'/70, l='MpServer', x=718.44, y=4.00, z=1292.56], EntityBat['Bat'/37849, l='MpServer', x=764.75, y=9.32, z=1253.00], EntitySheep['Sheep'/73, l='MpServer', x=733.06, y=4.00, z=1172.13], EntityPig['Pig'/85, l='MpServer', x=748.75, y=4.00, z=1176.38], EntityPig['Pig'/84, l='MpServer', x=730.56, y=4.00, z=1185.84], EntitySheep['Sheep'/87, l='MpServer', x=744.41, y=4.00, z=1181.06], EntityPig['Pig'/86, l='MpServer', x=743.28, y=4.00, z=1160.19], EntityBat['Bat'/78952, l='MpServer', x=761.50, y=9.00, z=1252.50], EntityCow['Cow'/81, l='MpServer', x=729.22, y=4.00, z=1188.25], EntityCow['Cow'/80, l='MpServer', x=737.69, y=4.00, z=1164.28], EntitySheep['Sheep'/83, l='MpServer', x=744.16, y=4.00, z=1183.91], EntitySheep['Sheep'/82, l='MpServer', x=741.44, y=4.00, z=1182.66], EntityPig['Pig'/89, l='MpServer', x=733.66, y=4.00, z=1192.75], EntityCow['Cow'/88, l='MpServer', x=738.78, y=4.00, z=1189.81], EntityBat['Bat'/102, l='MpServer', x=760.50, y=11.10, z=1251.47], EntityBat['Bat'/103, l='MpServer', x=759.78, y=11.10, z=1254.75], EntityBat['Bat'/100, l='MpServer', x=755.25, y=11.10, z=1254.75], EntityBat['Bat'/101, l='MpServer', x=752.25, y=15.10, z=1249.50], EntityCow['Cow'/98, l='MpServer', x=765.97, y=4.00, z=1188.97], EntityBat['Bat'/99, l='MpServer', x=764.53, y=19.10, z=1247.47], EntityBat['Bat'/106, l='MpServer', x=763.63, y=19.10, z=1248.63], EntityBat['Bat'/107, l='MpServer', x=764.75, y=19.10, z=1248.84], EntityBat['Bat'/104, l='MpServer', x=763.84, y=11.10, z=1248.69], EntityBat['Bat'/105, l='MpServer', x=742.66, y=4.12, z=1244.91], EntityHorse['Horse'/118, l='MpServer', x=783.56, y=4.45, z=1216.82], EntityClientPlayerMP['The_SlayerMC'/203, l='MpServer', x=786.55, y=5.62, z=1218.62]] Retry entities: 0 total; [] Server brand: fml,forge Server type: Integrated singleplayer server Stacktrace: at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:415) at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2555) at net.minecraft.client.Minecraft.run(Minecraft.java:973) at net.minecraft.client.main.Main.main(Main.java:164) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at net.minecraft.launchwrapper.Launch.launch(Launch.java:135) at net.minecraft.launchwrapper.Launch.main(Launch.java:28) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at GradleStart.bounce(GradleStart.java:107) at GradleStart.startClient(GradleStart.java:100) at GradleStart.main(GradleStart.java:65) -- System Details -- Details: Minecraft Version: 1.7.10 Operating System: Windows 7 (amd64) version 6.1 Java Version: 1.7.0_67, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 701732976 bytes (669 MB) / 1037959168 bytes (989 MB) up to 1037959168 bytes (989 MB) JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0 FML: MCP v9.05 FML v7.10.84.1219 Minecraft Forge 10.13.1.1219 7 mods loaded, 7 mods active mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available FML{7.10.84.1219} [Forge Mod Loader] (forgeSrc-1.7.10-10.13.1.1219.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Forge{10.13.1.1219} [Minecraft Forge] (forgeSrc-1.7.10-10.13.1.1219.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available CodeChickenCore{1.0.4.29} [CodeChicken Core] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available NotEnoughItems{1.0.3.62} [Not Enough Items] (NotEnoughItems-1.7.10-1.0.3.62-universal.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available eotg{1.6} [Essence Of The Gods] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available DamageIndicatorsMod{3.2.0} [Damage Indicators] ([1.7.10]DamageIndicatorsMod-3.2.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available Launched Version: 1.7.10 LWJGL: 2.9.1 OpenGL: GeForce GT 230/PCI/SSE2 GL version 3.2.0, NVIDIA Corporation GL Caps: Using GL 1.3 multitexturing. Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported. Anisotropic filtering is supported and maximum anisotropy is 16. Shaders are available because OpenGL 2.1 is supported. Is Modded: Definitely; Client brand changed to 'fml,forge' Type: Client (map_client.txt) Resource Packs: [] Current Language: English (US) Profiler Position: N/A (disabled) Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Anisotropic Filtering: Off (1) [16:58:31] [server thread/INFO] [FML]: The state engine was in incorrect state SERVER_STOPPING and forced into state SERVER_STOPPED. Errors may have been discarded. [16:58:31] [Client thread/INFO] [sTDOUT]: [net.minecraft.client.Minecraft:displayCrashReport:398]: #@!@# Game crashed! Crash report saved to: #@!@# C:\Development\Forge Youtube\eclipse\.\crash-reports\crash-2014-11-25_16.58.31-client.txt [16:58:31] [Client thread/INFO] [FML]: Waiting for the server to terminate/save. [16:58:31] [Client thread/INFO] [FML]: Server terminated. AL lib: (EE) alc_cleanup: 1 device not closed The crash seems to be caused at "moveEntity(Entity)". The particles spawn but when they hit the ground they crash. So if anyone can help, that would be great... Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
November 25, 201410 yr Author Okay, so I added this to my main class: public static ClientProxy clientProxy; this is now the particle method: public void spawnParticle(EnumParticlesClasses particle, World worldObj, double posX, double posY, double posZ, boolean b) { try { EntityFX fx = null; if(b) { fx = (EntityFX)particle.getParticle().getConstructor(World.class, double.class, double.class, double.class).newInstance(worldObj, posX, posY, posZ); } else { fx = (EntityFX)particle.getParticle().getConstructor(World.class, double.class, double.class, double.class, double.class, double.class, double.class).newInstance(worldObj, posX, posY, posZ, 0D, 0D, 0D); } Minecraft.getMinecraft().effectRenderer.addEffect(fx); } catch (Exception e) { e.printStackTrace(); } } and am now using this in the item class: @Override public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase hit, EntityLivingBase player) { Random r = new Random(); for(int i = 0; i < 40; i++) { if(!player.worldObj.isRemote) { Essence.clientProxy.spawnParticle(EnumParticlesClasses.FLAME, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F, false); Essence.clientProxy.spawnParticle(EnumParticlesClasses.SMOKE, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F, false); Essence.clientProxy.spawnParticle(EnumParticlesClasses.LAVA, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F, true); } return super.hitEntity(par1ItemStack, hit, player); } Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
November 26, 201410 yr Author Wait... you don't think that i think that just because the method is in the ClientProxy that it automatically get called on the client do you?! I just put it there because I don't want to make a new class for client methods. Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
November 26, 201410 yr Author So i changed this to make it be called on the client only: @Override public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase hit, EntityLivingBase player) { Random r = new Random(); hit.setFire(10); if(Config.spawnSwordParticles) { for(int i = 0; i < 70; i++) { Essence.proxy.spawnParticle(EnumParticlesClasses.FLAME, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F, false); Essence.proxy.spawnParticle(EnumParticlesClasses.SMOKE, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F, false); Essence.proxy.spawnParticle(EnumParticlesClasses.LAVA, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F, true); } } return super.hitEntity(par1ItemStack, hit, player); } common proxy public void spawnParticle(EnumParticlesClasses particle, World worldObj, double posX, double posY, double posZ, boolean b) { } and it now overrides the method in the client proxy Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
November 26, 201410 yr Author I forgot to mention, this is the new method: @Override public void spawnParticle(EnumParticlesClasses particle, World worldObj, double posX, double posY, double posZ, boolean b) { if(!worldObj.isRemote) { try { EntityFX fx = null; if(b) { fx = (EntityFX)particle.getParticle().getConstructor(World.class, double.class, double.class, double.class).newInstance(worldObj, posX, posY, posZ); } else { fx = (EntityFX)particle.getParticle().getConstructor(World.class, double.class, double.class, double.class, double.class, double.class, double.class).newInstance(worldObj, posX, posY, posZ, 0D, 0D, 0D); } Minecraft.getMinecraft().effectRenderer.addEffect(fx); } catch (Exception e) { e.printStackTrace(); } } } Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
November 26, 201410 yr Author So i basically cannot use the particle classes, i have to stay with the Strings? Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
November 26, 201410 yr Author So i basically changed these: @Override public void spawnParticle(EnumParticlesClasses particle, World worldObj, double x, double y, double z) { if(!worldObj.isRemote) { try { worldObj.spawnParticle(particle.getParticle(), x, y, z, 0D, 0D, 0D); } catch (Exception e) { e.printStackTrace(); } } } public enum EnumParticlesClasses { LAVA("lava"), SMOKE("smoke"), FLAME("flame"), SNOWBALL_POOF("snowballpoof"); private String particle; private EnumParticlesClasses(String name) { particle = name; } public String getParticle() { return particle; } } @Override public boolean hitEntity(ItemStack par1ItemStack, EntityLivingBase hit, EntityLivingBase player) { Random r = new Random(); hit.setFire(10); if(Config.spawnSwordParticles) { for(int i = 0; i < 70; i++) { Essence.proxy.spawnParticle(EnumParticlesClasses.FLAME, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F); Essence.proxy.spawnParticle(EnumParticlesClasses.SMOKE, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F); Essence.proxy.spawnParticle(EnumParticlesClasses.LAVA, player.worldObj, hit.posX + r.nextFloat() - 0.5F, hit.posY + 0.5D + r.nextFloat(), hit.posZ + r.nextFloat() - 0.5F); } } return super.hitEntity(par1ItemStack, hit, player); } And it doesn't spawn any particles at all Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
November 26, 201410 yr Author Uhg the isRemote should be isClient then to solve confusions and to be honest, i actually don't know why i still am Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
November 26, 201410 yr Author This is still not spawning anything... @Override public void spawnParticle(EnumParticlesClasses particle, World worldObj, double x, double y, double z) { if(worldObj.isRemote) { worldObj.spawnParticle(particle.getParticle(), x, y, z, 0D, 0D, 0D); } } Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
November 26, 201410 yr Author Yeah... ill see what i can do... If worst comes to worst, i wont have particles Former developer for DivineRPG, Pixelmon and now the maker of Essence of the Gods
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.