Goromorg Missing Sound *Solved*

Ask for help about creating mods and scripts for Grimrock 2 or share your tips, scripts, tools and assets with other modders here. Warning: forum contains spoilers!
Post Reply
Echoplex
Posts: 63
Joined: Tue Nov 04, 2014 10:59 pm

Goromorg Missing Sound *Solved*

Post by Echoplex »

Hello Everyone,

Haven't posted in a long while and its been over a year since I created Princes of Pale Moon mod but I'm ramping up to hopefully do a sequel mod and this time a bit more elaborate since asset packs are now available. I am however a bit rusty and honestly, a poor Lua scripter to begin with. Specifically im stumped on how to get the Goromorg going. I've searched the forums and understand that I need to fill in the missing sounds etc. Thats super and all but I still cant get him to work. I keep getting hit with a "[string "soundSystem.lua"] :0: File not found: assets/samples/monsters/goromorg_walk_01.wave". What I did was I pulled the goromorg lau from the asset 2 pack, placed it in my mod_assets/script folder for my mod. Then I updated my "Inti" Lua with "import "assets/scripts/monsters/goromorg.lua" "

I'm sure I'm missing something silly and someone could probably solve this lickety split so here I am.

Code: Select all

    defineObject{
       name = "goromorg",
       baseObject = "base_monster",
       components = {
          {
             class = "Model",
             model = "assets/models/monsters/goromorg.fbx",
             storeSourceData = true,
          },
          {
             class = "Animation",
             animations = {
                idle = "assets/animations/monsters/goromorg/goromorg_idle.fbx",
                moveForward = "assets/animations/monsters/goromorg/goromorg_walk.fbx",
                strafeLeft = "assets/animations/monsters/goromorg/goromorg_strafe_left.fbx",
                strafeRight = "assets/animations/monsters/goromorg/goromorg_strafe_right.fbx",
                turnLeft = "assets/animations/monsters/goromorg/goromorg_turn_left.fbx",
                turnRight = "assets/animations/monsters/goromorg/goromorg_turn_right.fbx",
                attack = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
                getHitFrontLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_front_left.fbx",
                getHitFrontRight = "assets/animations/monsters/goromorg/goromorg_get_hit_front_right.fbx",
                getHitBack = "assets/animations/monsters/goromorg/goromorg_get_hit_back.fbx",
                getHitLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_left.fbx",
                getHitRight = "assets/animations/monsters/goromorg/goromorg_get_hit_right.fbx",
                fall = "assets/animations/monsters/goromorg/goromorg_get_hit.fbx",
             },
             currentLevelOnly = true,
          },
          {
             class = "Monster",
             meshName = "goromorg_mesh",
             hitSound = "slime_hit", -- identical to goromorg_hit
             dieSound = "goromorg_die",
             hitEffect = "hit_dust",
             capsuleHeight = 0.8,
             capsuleRadius = 0.25,
             collisionRadius = 0.8,
             health = 400,
             protection = 0,
             exp = 1000,
             immunities = { "sleep", "blinded" },
          },
          {
             class = "GoromorgBrain",
             name = "brain",
             sight = 5,
             seeInvisible = true,
             allAroundSight = true,
             morale = 100,
          },
          {
             class = "MonsterMove",
             name = "move",
             sound = "dark_acolyte_walk",
             cooldown = 1,
             animationSpeed = 1.3,
          },
          {
             class = "MonsterTurn",
             name = "turn",
             sound = "dark_acolyte_walk",
             animationSpeed = 1.5,
          },
          {
             class = "MonsterAttack",
             name = "rangedAttack",
             attackPower = 40,
             cooldown = 6,
             animation = "attack",
             sound = "wizard_ranged_attack",
             onAttack = function(self)
                local h = 1.4
                
                local r = math.random()            
                if r < 0.45 then
                   -- cast fireball
                   self.go.monster:shootProjectile("fireball_large", h, 40)
                elseif r < 0.7 then
                   -- cast lightning bolt
                   self.go.monster:shootProjectile("lightning_bolt_greater", h, 40)
                elseif r < 0.8 then
                   -- cast poison bolt
                   self.go.monster:shootProjectile("poison_bolt", h, 40)
                else
                   -- cast ice shards
                   local dx,dy = getForward(self.go.facing)
                   local spell = spawn("ice_shards", self.go.level, self.go.x + dx, self.go.y + dy, self.go.facing, self.go.elevation)
                   spell.tiledamager:setAttackPower(40)
                end
             end,
          },
          {
             class = "GoromorgShield",
          },
          {
             class = "Particle",
             parentNode = "light1",
             particleSystem = "goromorg_lantern",
          },
          {
             class = "Light",
             parentNode = "light1",
             color = vec(0.5, 1.0, 2.5),
             brightness = 4,
             range = 4.5,
             fillLight = true,
          },
       },
    }
    defineMaterial{
       name = "goromorog1",
       diffuseMap = "assets/textures/monsters/goromorg_dif.tga",
       specularMap = "assets/textures/monsters/goromorg_spec.tga",
       normalMap = "assets/textures/monsters/goromorg_normal.tga",
       doubleSided = false,
       lighting = true,
       alphaTest = true,
       blendMode = "Opaque",
       textureAddressMode = "Wrap",
       glossiness = 20,
       depthBias = 0,
    }
        defineSound{
       name = "goromorg_walk",
       filename = {
          "assets/samples/monsters/wizard_warp_01.wav",
          "assets/samples/monsters/wizard_warp_02.wav",
          "assets/samples/monsters/wizard_warp_03.wav",
          },
       loop = false,
       volume = 0.2,
       minDistance = 2,
       maxDistance = 12,
       }

    defineSound{
       name = "goromorg_footstep",
       filename = {
          "assets/samples/monsters/wizard_warp_01.wav",
          "assets/samples/monsters/wizard_warp_02.wav",
          "assets/samples/monsters/wizard_warp_03.wav",
          },
       loop = false,
       volume = 0.1,
       minDistance = 1,
       maxDistance = 10,
       }

    defineSound{
       name = "goromorg_attack",
       filename = "assets/samples/monsters/wizard_ranged_attack_01.wav",
       loop = false,
       volume = 1.5,
       minDistance = 2,
       maxDistance = 10,
       }

    defineSound{
       name = "goromorg_hit",
       filename = {
          "assets/samples/weapons/hit_bone_01.wav",
          "assets/samples/weapons/hit_bone_02.wav",
          "assets/samples/weapons/hit_flesh_01.wav",
          },
       loop = false,
       volume = 1,
       minDistance = 1,
       maxDistance = 10,
       }

    defineSound{
       name = "goromorg_die",
       filename = "assets/samples/monsters/uggardian_die_01.wav",
       loop = false,
       volume = 1,
       minDistance = 1,
       maxDistance = 10,
       }

    defineAnimationEvent{
       animation = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
       event = "attack",
       frame = 10,
    }
    defineParticleSystem{
       name = "goromorg_lantern",
       emitters = {
          -- smoke
          {
             emissionRate = 5,
             emissionTime = 0,
             maxParticles = 50,
             boxMin = {-0.03, 0.1, -0.03},
             boxMax = { 0.03, 0.1,  0.03},
             sprayAngle = {0,30},
             velocity = {0.1,0.5},
             texture = "assets/textures/particles/smoke_01.tga",
             lifetime = {1,1.25},
             color0 = {0.08, 0.11, 0.15},
             opacity = 1,
             fadeIn = 0.5,
             fadeOut = 0.5,
             size = {0.3, 0.6},
             gravity = {0,0,0},
             airResistance = 0.1,
             rotationSpeed = 0.6,
             blendMode = "Translucent",
             objectSpace = false,
          },

          -- flames
          {
             emissionRate = 30,
             emissionTime = 0,
             maxParticles = 100,
             boxMin = {-0.03, -0.07, 0.03},
             boxMax = { 0.03, -0.07,  -0.03},
             sprayAngle = {0,10},
             velocity = {0.1, 0.4},
             texture = "assets/textures/particles/goromorg_lantern.tga",
             frameRate = 45,
             frameSize = 64,
             frameCount = 16,
             lifetime = {0.25, 0.85},
             colorAnimation = false,
             color0 = {1.5, 1.5, 1.5},
             opacity = 1,
             fadeIn = 0.15,
             fadeOut = 0.3,
             size = {0.17, 0.015},
             gravity = {0,0,0},
             airResistance = 1.0,
             rotationSpeed = 1,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          },

          -- inner glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,-0.05,0.0},
             boxMax = {0,-0.05,0.0},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.07, 0.11, 0.23},
             opacity = 1,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {0.5, 0.5},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          },

          -- outer glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,0,0},
             boxMax = {0,0,0},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.07, 0.11, 0.23},
             opacity = 0.25,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {2, 2},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          }
       }
    }
    defineParticleSystem{ -- used for diamond edge boss
       name = "goromorg_torch",
       emitters = {
          -- smoke
          {
             emissionRate = 5,
             emissionTime = 0,
             maxParticles = 50,
             boxMin = {-0.03, 0.1, -0.03},
             boxMax = { 0.03, 0.1,  0.03},
             sprayAngle = {0,30},
             velocity = {0.1,0.5},
             texture = "assets/textures/particles/smoke_01.tga",
             lifetime = {1,1.75},
             color0 = {0.15, 0.15, 0.15},
             opacity = 1,
             fadeIn = 0.5,
             fadeOut = 0.5,
             size = {0.3, 0.6},
             gravity = {0,0,0},
             airResistance = 0.1,
             rotationSpeed = 0.6,
             blendMode = "Translucent",
          },

          -- flames
          {
             emissionRate = 50,
             emissionTime = 0,
             maxParticles = 100,
             boxMin = {-0.03, -0.03, 0.03},
             boxMax = { 0.03, 0.03,  -0.03},
             sprayAngle = {0,10},
             velocity = {0.2, 1},
             texture = "assets/textures/particles/goromorg_lantern.tga",
             frameRate = 35,
             frameSize = 64,
             frameCount = 16,
             lifetime = {0.25, 0.85},
             colorAnimation = true,
             color0 = {2, 2, 2},
             color1 = {1.0, 1.0, 1.0},
             color2 = {0.25, 0.5, 1.0},
             color3 = {0.1, 0.3, 1.0},
             opacity = 1,
             fadeIn = 0.15,
             fadeOut = 0.3,
             size = {0.35, 0.015},
             gravity = {0,0,0},
             airResistance = 1.0,
             rotationSpeed = 1,
             blendMode = "Additive",
             depthBias = 0.1,
          },

          -- glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,0,-0.1},
             boxMax = {0,0,-0.1},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.08, 0.11, 0.23},
             opacity = 1,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {2, 2},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = 0.1,
          }
       }
    }
    defineSound{
       name = "goromorg_die",
       filename = "assets/samples/monsters/tentacles_die_01.wav",
       loop = false,
       volume = 1,
       minDistance = 1,
       maxDistance = 10,
    }
I apologize if this is beneath folks at this point however this is new territory for me. I unfortunately couldn't extrapolate a solution from the forum search as i'm apparently lacking something here. Any assistance would be much appreciated. Thank you
Last edited by Echoplex on Tue Feb 23, 2016 9:10 pm, edited 1 time in total.
minmay
Posts: 2790
Joined: Mon Sep 23, 2013 2:24 am

Re: Goromorg Missing Sound

Post by minmay »

Some of the assets from Grimrock 1 are not included in grimrock2.dat since they are not used in Grimrock 2. The goromorg and scavenger sounds are examples of this. Sounds are not in the asset packs and it would be against the EULA to extract the goromorg sounds from Grimrock 1 and use them in a Grimrock 2 mod. Here is a definition that uses different default sounds.

Code: Select all

    -- for the "retro" inquisitor room, define goromorgs. goromorg sounds aren't in
    -- grimrock2.dat so we have to replace them
    defineObject{
       name = "goromorg",
       baseObject = "base_monster",
       components = {
          {
             class = "Model",
             model = "assets/models/monsters/goromorg.fbx",
             storeSourceData = true,
          },
          {
             class = "Animation",
             animations = {
                idle = "assets/animations/monsters/goromorg/goromorg_idle.fbx",
                moveForward = "assets/animations/monsters/goromorg/goromorg_walk.fbx",
                strafeLeft = "assets/animations/monsters/goromorg/goromorg_strafe_left.fbx",
                strafeRight = "assets/animations/monsters/goromorg/goromorg_strafe_right.fbx",
                turnLeft = "assets/animations/monsters/goromorg/goromorg_turn_left.fbx",
                turnRight = "assets/animations/monsters/goromorg/goromorg_turn_right.fbx",
                attack = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
                getHitFrontLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_front_left.fbx",
                getHitFrontRight = "assets/animations/monsters/goromorg/goromorg_get_hit_front_right.fbx",
                getHitBack = "assets/animations/monsters/goromorg/goromorg_get_hit_back.fbx",
                getHitLeft = "assets/animations/monsters/goromorg/goromorg_get_hit_left.fbx",
                getHitRight = "assets/animations/monsters/goromorg/goromorg_get_hit_right.fbx",
                fall = "assets/animations/monsters/goromorg/goromorg_get_hit.fbx",
             },
             currentLevelOnly = true,
          },
          {
             class = "Monster",
             meshName = "goromorg_mesh",
             hitSound = "slime_hit", -- identical to goromorg_hit
             dieSound = "goromorg_die",
             hitEffect = "hit_dust",
             capsuleHeight = 0.8,
             capsuleRadius = 0.25,
             collisionRadius = 0.8,
             health = 400,
             protection = 0,
             exp = 1000,
             immunities = { "sleep", "blinded" },
          },
          {
             class = "GoromorgBrain",
             name = "brain",
             sight = 5,
             seeInvisible = true,
             allAroundSight = true,
             morale = 100,
          },
          {
             class = "MonsterMove",
             name = "move",
             sound = "dark_acolyte_walk",
             cooldown = 1,
             animationSpeed = 1.3,
          },
          {
             class = "MonsterTurn",
             name = "turn",
             sound = "dark_acolyte_walk",
             animationSpeed = 1.5,
          },
          {
             class = "MonsterAttack",
             name = "rangedAttack",
             attackPower = 40,
             cooldown = 6,
             animation = "attack",
             sound = "wizard_ranged_attack",
             onAttack = function(self)
                local h = 1.4
                
                local r = math.random()            
                if r < 0.45 then
                   -- cast fireball
                   self.go.monster:shootProjectile("fireball_large", h, 40)
                elseif r < 0.7 then
                   -- cast lightning bolt
                   self.go.monster:shootProjectile("lightning_bolt_greater", h, 40)
                elseif r < 0.8 then
                   -- cast poison bolt
                   self.go.monster:shootProjectile("poison_bolt", h, 40)
                else
                   -- cast ice shards
                   local dx,dy = getForward(self.go.facing)
                   local spell = spawn("ice_shards", self.go.level, self.go.x + dx, self.go.y + dy, self.go.facing, self.go.elevation)
                   spell.tiledamager:setAttackPower(40)
                end
             end,
          },
          {
             class = "GoromorgShield",
          },
          {
             class = "Particle",
             parentNode = "light1",
             particleSystem = "goromorg_lantern",
          },
          {
             class = "Light",
             parentNode = "light1",
             color = vec(0.5, 1.0, 2.5),
             brightness = 4,
             range = 4.5,
             fillLight = true,
          },
       },
    }
    defineMaterial{
       name = "goromorog1",
       diffuseMap = "assets/textures/monsters/goromorg_dif.tga",
       specularMap = "assets/textures/monsters/goromorg_spec.tga",
       normalMap = "assets/textures/monsters/goromorg_normal.tga",
       doubleSided = false,
       lighting = true,
       alphaTest = true,
       blendMode = "Opaque",
       textureAddressMode = "Wrap",
       glossiness = 20,
       depthBias = 0,
    }
    defineSound{
       name = "goromorg_die",
       filename = "assets/samples/monsters/tentacles_die_01.wav",
       loop = false,
       volume = 1,
       minDistance = 1,
       maxDistance = 10,
    }
    defineAnimationEvent{
       animation = "assets/animations/monsters/goromorg/goromorg_attack.fbx",
       event = "attack",
       frame = 10,
    }
    defineParticleSystem{
       name = "goromorg_lantern",
       emitters = {
          -- smoke
          {
             emissionRate = 5,
             emissionTime = 0,
             maxParticles = 50,
             boxMin = {-0.03, 0.1, -0.03},
             boxMax = { 0.03, 0.1,  0.03},
             sprayAngle = {0,30},
             velocity = {0.1,0.5},
             texture = "assets/textures/particles/smoke_01.tga",
             lifetime = {1,1.25},
             color0 = {0.08, 0.11, 0.15},
             opacity = 1,
             fadeIn = 0.5,
             fadeOut = 0.5,
             size = {0.3, 0.6},
             gravity = {0,0,0},
             airResistance = 0.1,
             rotationSpeed = 0.6,
             blendMode = "Translucent",
             objectSpace = false,
          },

          -- flames
          {
             emissionRate = 30,
             emissionTime = 0,
             maxParticles = 100,
             boxMin = {-0.03, -0.07, 0.03},
             boxMax = { 0.03, -0.07,  -0.03},
             sprayAngle = {0,10},
             velocity = {0.1, 0.4},
             texture = "assets/textures/particles/goromorg_lantern.tga",
             frameRate = 45,
             frameSize = 64,
             frameCount = 16,
             lifetime = {0.25, 0.85},
             colorAnimation = false,
             color0 = {1.5, 1.5, 1.5},
             opacity = 1,
             fadeIn = 0.15,
             fadeOut = 0.3,
             size = {0.17, 0.015},
             gravity = {0,0,0},
             airResistance = 1.0,
             rotationSpeed = 1,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          },

          -- inner glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,-0.05,0.0},
             boxMax = {0,-0.05,0.0},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.07, 0.11, 0.23},
             opacity = 1,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {0.5, 0.5},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          },

          -- outer glow
          {
             spawnBurst = true,
             emissionRate = 1,
             emissionTime = 0,
             maxParticles = 1,
             boxMin = {0,0,0},
             boxMax = {0,0,0},
             sprayAngle = {0,30},
             velocity = {0,0},
             texture = "assets/textures/particles/glow.tga",
             lifetime = {1000000, 1000000},
             colorAnimation = false,
             color0 = {0.07, 0.11, 0.23},
             opacity = 0.25,
             fadeIn = 0.1,
             fadeOut = 0.1,
             size = {2, 2},
             gravity = {0,0,0},
             airResistance = 1,
             rotationSpeed = 0,
             blendMode = "Additive",
             depthBias = -0.0005,
             objectSpace = true,
          }
       }
    }
Grimrock 1 dungeon
Grimrock 2 resources
I no longer answer scripting questions in private messages. Please ask in a forum topic or this Discord server.
Echoplex
Posts: 63
Joined: Tue Nov 04, 2014 10:59 pm

Re: Goromorg Missing Sound

Post by Echoplex »

Thanks Minmay for the quick assistance. I was able to get him working and will start on fixing the other guys. Thanks again.
Post Reply