I will post the usual files involved with this when I get home but I thought id see if anyone has experienced this issue basically when I attack there is no "swoosh" and it is not showing any damage, also in debug mode the damage area is not even there. The JSON and Lua look good to me, I have compared them to several vanilla equivalent's and there are no issues between them sooo I'm kinda at a loss. The log file does not see any issues which is no help at all. If anyone has an idea why this is happening please feel free to comment...or you can wait until I post the JSON and Lua for the weapon.
we will need the files for confirmation, but it may be your weapon is not considered a weapon, even tho it is set up and works like one. this could be a file name/location problem
like if its in /items/active/weapons/melee/floransaber..... instead of /items/active/weapons/melee/broadsword/floransaber does that make a difference? if so then that is a silly error on my part
yes that's correct, I tried several vanilla weapons including the violium broadsword to which it is based off and there were no issues
The files' position shouldn't cause any problem, except for paths in your item, but if that was the problem the logs would'bve told you
indeed which is why I am terribly confused... and it sucks because this is the only thing stopping me from finishing this saber for FluffFlorans saber commission
{ "itemName" : "floransaber", "price" : 960, "level" : 6, "maxStack" : 1, "rarity" : "Legendary", "description" : "A weapon using the living essence of plants....and a dragon skull they found!?", "shortdescription" : "Dragancea", "tooltipKind" : "base", "category" : "uniqueWeapon", "twoHanded" : true, "itemTags" : ["weapon", "melee", "broadsword"], "inventoryIcon" : "floransabericon.png", "animation" : "/items/active/weapons/melee/floransaber/floransaber.animation", "animationParts" : { "handle" : "floranhilt.png", "dragonskull" : "dragonskull.png", "handleFullbright" : "floranhiltfullbright.png", "blade" : "floranblade.png" }, "animationCustom" : { "sounds" : { "fire" : [ "/sfx/melee/laser_weapon_swing1.ogg", "/sfx/melee/laser_weapon_swing2.ogg", "/sfx/melee/laser_weapon_swing3.ogg" ], "fire2" : [ "/sfx/melee/laser_weapon_swing1.ogg", "/sfx/melee/laser_weapon_swing2.ogg", "/sfx/melee/laser_weapon_swing3.ogg" ], "fire3" : [ "/sfx/melee/laser_weapon_swing1.ogg", "/sfx/melee/laser_weapon_swing2.ogg", "/sfx/melee/laser_weapon_swing3.ogg" ] } }, "scripts" : ["/items/active/weapons/melee/floransaber/floransaberweapon/floransaberweapon.lua"], "activeTime" : 5.0, "elementalType" : "physical", "primaryAbilityType" : "floransabercombo", "primaryAbility" : { "fireTime" : 0.5, "baseDps" : 11.5, "stances" : { "windup1" : { "duration" : 0.15 } } }, "altAbilityType" : "", "builder" : "/items/buildscripts/buildunrandweapon.lua" } { "globalTagDefaults": { "paletteSwaps": "" }, "animatedParts": { "stateTypes": { "swoosh": { "default": "idle", "states": { "idle": {}, "fire": { "frames": 2, "cycle": 0.2, "mode": "transition", "transition": "idle" }, "fire2": { "frames": 2, "cycle": 0.2, "mode": "transition", "transition": "idle" }, "fire3": { "frames": 2, "cycle": 0.2, "mode": "transition", "transition": "idle" } } }, "blade": { "default": "inactive", "states": { "inactive": { "properties": { "lightsOff": ["glow"], "particleEmittersOff": ["blade"] } }, "extend": { "frames": 5, "cycle": 0.8, "mode": "transition", "transition": "active", "properties": { "lightsOn": ["glow"], "particleEmittersOn": ["blade"], "immediateSound": "/sfx/melee/floranON.ogg" } }, "active": { "frames": 18, "cycle": 0.8, "mode": "loop", "properties": { "lightsOn": ["glow"], "particleEmittersOff": ["blade"], "persistentSound": "/sfx/melee/floranHUM.ogg" } }, "retract": { "frames": 5, "cycle": 0.1, "mode": "transition", "transition": "inactive", "properties": { "lightsOn": ["glow"], "particleEmittersOn": ["blade"], "immediateSound": "/sfx/melee/floranOFFtest.ogg" } } } }, "dragonskull": { "default": "skull", "states": { "skull": { "properties": {} }, "opening": { "frames": 5, "cycle": 0.5, "mode": "transition", "transition": "eyes", "properties": { "immediateSound": "" } }, "eyes": { "frames": 18, "cycle": 2.0, "mode": "loop", "properties": { "immediateSound": "" } }, "shutting": { "frames": 5, "cycle": 1.1, "mode": "transition", "transition": "skull", "properties": { "immediateSound": "" } } } } }, "parts": { "blade": { "properties": { "zLevel": 0, "centered": true, "fullbright": true, "offset": [-0.2, 6.0], "transformationGroups": ["weapon"], "rotationCenter": [0, 0], "damageArea": [[-0.7, -1.0], [0.7, 2.5], [0.5, 2.5], [0.5, -1.0]] }, "partStates": { "blade": { "inactive": { "properties": { "image": "" } }, "extend": { "properties": { "image": "<partImage>:extend.<frame>?<directives>?<bladeDirectives>" } }, "active": { "properties": { "image": "<partImage>:active.<frame>?<directives>?<bladeDirectives>" } }, "retract": { "properties": { "image": "<partImage>:retract.<frame>?<directives>?<bladeDirectives>" } } } } }, "dragonskull": { "properties": { "zLevel": 2, "centered": true, "fullbright": false, "offset": [-0.2, 6.0], "transformationGroups" : ["weapon"], "rotationCenter" : [0, 0] }, "partStates": { "dragonskull": { "skull": { "properties": { "image": "<partImage>:skull" } }, "opening": { "properties": { "image": "<partImage>pening.<frame>?<directives>?<bladeDirectives>" } }, "eyes": { "properties": { "image": "<partImage>:eyes.<frame>?<directives>?<bladeDirectives>" } }, "shutting": { "properties": { "image": "<partImage>:shutting.<frame>?<directives>?<bladeDirectives>" } } } } }, "handle": { "properties": { "zLevel": 1, "centered": true, "image": "<partImage><paletteSwaps>?<directives>", "offset": [-0.2, 2.2], "transformationGroups": ["weapon"], "rotationCenter": [0, 0] } }, "handleFullbright": { "properties": { "zLevel": 2, "centered": true, "fullbright": true, "image": "<partImage><paletteSwaps>?<directives>", "offset": [-0.2, 2.2], "transformationGroups": ["weapon"], "rotationCenter": [0, 0] } }, "swoosh": { "properties": { "zLevel": -1, "centered": true, "fullbright": true, "transformationGroups": ["swoosh"], "rotationCenter": [0, 0] } }, "partStates": { "swoosh": { "idle": { "properties": { "image": "" } }, "fire": { "properties": { "image": "/items/active/weapons/melee/floransaber/Slash/Saberslash.png:<frame>", "offset": [0.8, 2.75], "damageArea": [[-5, 2], [-2.5, 3], [1, 3], [4, 1.75], [5, -0.25], [5, -2.25], [4, -3.25], [0, -2.5]] } }, "fire2": { "properties": { "image": "/items/active/weapons/melee/floransaber/Slash4/saberslash4.png:<frame>", "offset": [0.8, -2.75], "damageArea": [[-5, -2], [-2.5, -3], [1, -3], [4, -1.75], [5, 0.25], [5, 2.25], [4, 3.25], [0, 2.5]] } }, "fire3": { "properties": { "image": "/items/active/weapons/melee/floransaber/Slash/Saberslash.png:<frame>", "offset": [0.8, 2.75], "damageArea": [[-5, 2], [-2.5, 3], [1, 3], [4, 1.75], [5, -0.25], [5, -2.25], [4, -3.25], [0, -2.5]] } } } } } }, "transformationGroups": { "weapon": {}, "swoosh": {} }, "particleEmitters": { "physicalswoosh": { "active": false, "transformationGroups": ["swoosh"], "burstCount": 4, "particles": [ { "particle": "redsaberblade" }, { "particle": "redsaberblade2" } ] }, "blade": { "active": false, "transformationGroups": ["weapon"], "offsetRegion": [-0.5, 1.5, 0.5, 4.0], "emissionRate": 5, "particles": [ { "particle": "redsaberblade" }, { "particle": "redsaberblade2" } ] } }, "lights": { "glow": { "position": [0, 2.0], "color": [225, 50, 50], "transformationGroups": ["weapon"] } }, "sounds": { "fire": [], "fire2": [], "fire3": [] } } -- Melee primary ability floransabercombo = WeaponAbility:new() function floransabercombo:init() self.comboStep = 1 self.energyUsage = self.energyUsage or 0 self:computeDamageAndCooldowns() self.weapon:setStance(self.stances.idle) self.edgeTriggerTimer = 0 self.flashTimer = 0 self.cooldownTimer = self.cooldowns[1] self.animKeyPrefix = self.animKeyPrefix or "" self.weapon.onLeaveAbility = function() self.weapon:setStance(self.stances.idle) end end -- Ticks on every update regardless if this is the active ability function floransabercombo:update(dt, fireMode, shiftHeld) WeaponAbility.update(self, dt, fireMode, shiftHeld) if self.cooldownTimer > 0 then self.cooldownTimer = math.max(0, self.cooldownTimer - self.dt) if self.cooldownTimer == 0 then self:readyFlash() end end if self.flashTimer > 0 then self.flashTimer = math.max(0, self.flashTimer - self.dt) if self.flashTimer == 0 then animator.setGlobalTag("bladeDirectives", "") end end self.edgeTriggerTimer = math.max(0, self.edgeTriggerTimer - dt) if self.lastFireMode ~= (self.activatingFireMode or self.abilitySlot) and fireMode == (self.activatingFireMode or self.abilitySlot) then self.edgeTriggerTimer = self.edgeTriggerGrace end self.lastFireMode = fireMode if not self.weapon.currentAbility and self:shouldActivate() then self:setState(self.windup) end end -- State: windup function floransabercombo:windup() local stance = self.stances["windup"..self.comboStep] self.weapon:setStance(stance) self.edgeTriggerTimer = 0 if stance.hold then while self.fireMode == (self.activatingFireMode or self.abilitySlot) do coroutine.yield() end else util.wait(stance.duration) end if self.energyUsage then status.overConsumeResource("energy", self.energyUsage) end if self.stances["preslash"..self.comboStep] then self:setState(self.preslash) else self:setState(self.fire) end end -- State: wait -- waiting for next combo input function floransabercombo:wait() local stance = self.stances["wait"..(self.comboStep - 1)] self.weapon:setStance(stance) util.wait(stance.duration, function() if self:shouldActivate() then self:setState(self.windup) return end end) self.cooldownTimer = math.max(0, self.cooldowns[self.comboStep - 1] - stance.duration) self.comboStep = 1 end -- State: preslash -- brief frame in between windup and fire function floransabercomboreslash() local stance = self.stances["preslash"..self.comboStep] self.weapon:setStance(stance) self.weapon:updateAim() util.wait(stance.duration) self:setState(self.fire) end -- State: fire function floransabercombo:fire() local stance = self.stances["fire"..self.comboStep] self.weapon:setStance(stance) self.weapon:updateAim() local animStateKey = self.animKeyPrefix .. (self.comboStep > 1 and "fire"..self.comboStep or "fire") animator.setAnimationState("swoosh", animStateKey) animator.playSound(animStateKey) local swooshKey = self.animKeyPrefix .. (self.elementalType or self.weapon.elementalType) .. "swoosh" animator.setParticleEmitterOffsetRegion(swooshKey, self.swooshOffsetRegions[self.comboStep]) animator.burstParticleEmitter(swooshKey) util.wait(stance.duration, function() local damageArea = partDamageArea("swoosh") self.weapon:setDamage(self.stepDamageConfig[self.comboStep], damageArea) end) if self.comboStep < self.comboSteps then self.comboStep = self.comboStep + 1 self:setState(self.wait) else self.cooldownTimer = self.cooldowns[self.comboStep] self.comboStep = 1 end end function floransabercombo:shouldActivate() if self.cooldownTimer == 0 and (self.energyUsage == 0 or not status.resourceLocked("energy")) then if self.comboStep > 1 then return self.edgeTriggerTimer > 0 else return self.fireMode == (self.activatingFireMode or self.abilitySlot) end end end function floransabercombo:readyFlash() animator.setGlobalTag("bladeDirectives", self.flashDirectives) self.flashTimer = self.flashTime end function floransabercombo:computeDamageAndCooldowns() local attackTimes = {} for i = 1, self.comboSteps do local attackTime = self.stances["windup"..i].duration + self.stances["fire"..i].duration if self.stances["preslash"..i] then attackTime = attackTime + self.stances["preslash"..i].duration end table.insert(attackTimes, attackTime) end self.cooldowns = {} local totalAttackTime = 0 local totalDamageFactor = 0 for i, attackTime in ipairs(attackTimes) do self.stepDamageConfig = util.mergeTable(copy(self.damageConfig), self.stepDamageConfig) self.stepDamageConfig.timeoutGroup = "primary"..i local damageFactor = self.stepDamageConfig.baseDamageFactor self.stepDamageConfig.baseDamage = damageFactor * self.baseDps * self.fireTime totalAttackTime = totalAttackTime + attackTime totalDamageFactor = totalDamageFactor + damageFactor local targetTime = totalDamageFactor * self.fireTime local speedFactor = 1.0 * (self.comboSpeedFactor ^ i) table.insert(self.cooldowns, (targetTime - totalAttackTime) * speedFactor) end end function floransabercombo:uninit() self.weapon:setDamage() end { "animationParts" : { }, "animationCustom" : { "sounds" : { "fire" : [], "fire2" : [], "fire3" : [] } }, "ability" : { "name" : "floransabercombo", "type" : "floransabercombo", "scripts" : ["/items/active/weapons/melee/floransaber/florancombo/floransabercombo.lua"], "class" : "floransabercombo", "comboSteps" : 3, "flashTime" : 0.15, "flashDirectives" : "fade=FFFFFFFF=0.15", "swooshOffsetRegions" : [ [0.75, 0.0, 4.25, 5.0], [3.0, -0.5, 6.5, 2.0], [1.5, -1.0, 5.5, 1.0] ], // cooldown time multiplier for steps after the first, compounded per combo step "comboSpeedFactor" : 0.9, "edgeTriggerGrace" : 0.25, "fireTime" : 0.8, "baseDps" : 11.5, "damageConfig" : { "damageSourceKind" : "floransaber", "statusEffects" : [ ], "knockbackMode" : "facing", "timeout" : 0.5 }, "stepDamageConfig" : [ { "baseDamageFactor" : 1.0, "knockback" : 10 }, { "baseDamageFactor" : 1.0, "knockback" : 10 }, { "baseDamageFactor" : 1.5, "knockback" : 25 } ], "stances" : { "idle" : { "armRotation" : -55, "weaponRotation" : -40, "twoHanded" : false, "allowRotate" : false, "allowFlip" : true }, "windup1" : { "duration" : 0.2, "armRotation" : 90, "weaponRotation" : 0, "twoHanded" : true, "allowRotate" : false, "allowFlip" : true }, "preslash1" : { "duration" : 0.025, "armRotation" : 55, "weaponRotation" : -45, "twoHanded" : true, "allowRotate" : false, "allowFlip" : true }, "fire1" : { "duration" : 0.2, "armRotation" : -55, "weaponRotation" : -45, "twoHanded" : true, "allowRotate" : false, "allowFlip" : true }, "wait1" : { "duration" : 0.2, "armRotation" : -45, "weaponRotation" : -55, "allowRotate" : false, "allowFlip" : true, "twoHanded" : true }, "windup2" : { "duration" : 0.2, "armRotation" : -90, "weaponRotation" : -170, "twoHanded" : true, "allowRotate" : false, "allowFlip" : true }, "fire2" : { "duration" : 0.2, "armRotation" : 65, "weaponRotation" : -100, "twoHanded" : true, "allowRotate" : false, "allowFlip" : true }, "wait2" : { "duration" : 0.1, "armRotation" : 65, "weaponRotation" : -95, "allowRotate" : false, "allowFlip" : true, "twoHanded" : true }, "windup3" : { "duration" : 0.2, "armRotation" : 90, "weaponRotation" : 35, "twoHanded" : true, "allowRotate" : false, "allowFlip" : true }, "preslash3" : { "duration" : 0.025, "armRotation" : 55, "weaponRotation" : -45, "twoHanded" : true, "allowRotate" : false, "allowFlip" : true }, "fire3" : { "duration" : 0.2, "armRotation" : -55, "weaponRotation" : -55, "twoHanded" : true, "allowRotate" : false, "allowFlip" : true } } } } [11:24:02.424] [Info] Root: Preparing Root... [11:24:02.425] [Info] Root: Done preparing Root. [11:24:02.425] [Info] Client Version 1.2.3b (windows x86_64) Source I 69bc1c906122a1c61453c6cff15aa088b613db78 Protocol: 729 [11:24:02.425] [Info] Root: Scanning for asset sources in directory '..\assets\' [11:24:02.638] [Info] Root: Scanning for asset sources in directory '..\mods\' [11:24:02.642] [Info] Root: Detected asset source named 'base' at '..\assets\packed.pak' [11:24:02.642] [Info] Root: Detected asset source named 'Avian Sabers' at '..\mods\Avian Sabers' [11:24:02.643] [Info] Root: Detected asset source named 'Custom Weapon LUA' at '..\mods\CustomWeaponLUA' [11:24:02.643] [Info] Root: Detected asset source named 'Floran Sabers' at '..\mods\Floran Saber' [11:24:02.643] [Info] Root: Detected asset source named 'STFU fish' at '..\mods\STFU fish' [11:24:02.643] [Info] Root: Detected unnamed asset source at '..\assets\user' [11:24:02.643] [Info] Loading assets from: '..\assets\packed.pak' [11:24:02.921] [Info] Loading assets from: '..\mods\Avian Sabers' [11:24:02.927] [Info] Loading assets from: '..\mods\CustomWeaponLUA' [11:24:02.928] [Info] Loading assets from: '..\mods\Floran Saber' [11:24:02.931] [Info] Loading assets from: '..\mods\STFU fish' [11:24:02.931] [Info] Loading assets from: '..\assets\user' [11:24:03.554] [Info] Assets digest is 72649ad81c0da4863e719d6acbec48010f72e25c6ae5183497f085af359ad510 [11:24:03.554] [Info] Root: Loaded Assets in 1.12946 seconds [11:24:03.558] [Info] Application: Initializing SDL Video [11:24:03.561] [Info] Application: Initializing SDL Joystick [11:24:03.603] [Info] Application: Initializing SDL Sound [11:24:03.612] [Info] Failed to initialize Steam platform services [11:24:03.612] [Info] Application: No platform services available [11:24:03.612] [Info] Application: Creating SDL Window [11:24:04.057] [Info] Application: Enabling VSync with late swap tearing [11:24:04.084] [Info] Application: Opened default audio device with 44.1khz / 16 bit stereo audio, 2048 sample size buffer [11:24:04.091] [Info] OpenGL version: '4.5.0 NVIDIA 378.78' vendor: 'NVIDIA Corporation' renderer: 'GeForce GTX 1070/PCIe/SSE2' shader: '4.50 NVIDIA' [11:24:04.100] [Info] Application: initialization... [11:24:04.101] [Info] Root: Loaded Configuration in 0.000710079 seconds [11:24:04.110] [Info] Application: renderer initialization... [11:24:04.113] [Info] detected supported OpenGL texture size 32768, using atlasNumCells 128 [11:24:04.113] [Info] detected supported OpenGL texture size 32768, using atlasNumCells 64 [11:24:04.114] [Info] Root: Loaded ImageMetadataDatabase in 3.91642e-06 seconds [11:24:04.126] [Info] Application: main update loop... [11:24:04.284] [Info] Root: Loaded NameGenerator in 0.0150584 seconds [11:24:04.296] [Error] OpenGL errors this frame: GL_INVALID_VALUE [11:24:04.302] [Info] Root: Loaded ObjectDatabase in 0.173441 seconds [11:24:04.335] [Info] Root: Loaded PlantDatabase in 0.0515975 seconds [11:24:04.465] [Info] Root: Loaded MonsterDatabase in 0.129219 seconds [11:24:04.492] [Info] Root: Loaded NpcDatabase in 0.0275009 seconds [11:24:04.493] [Info] Root: Loaded StagehandDatabase in 0.000711887 seconds [11:24:04.494] [Info] Root: Loaded VehicleDatabase in 0.00153343 seconds [11:24:04.497] [Info] Root: Loaded PlayerFactory in 0.002574 seconds [11:24:04.609] [Info] Root: Loaded ProjectileDatabase in 0.30795 seconds [11:24:04.610] [Info] Root: Loaded VersioningDatabase in 0.000523898 seconds [11:24:04.610] [Info] Root: Loaded EntityFactory in 0.113018 seconds [11:24:04.641] [Info] Root: Loaded ParticleDatabase in 0.0303102 seconds [11:24:04.825] [Info] Root: Loaded MaterialDatabase in 0.214438 seconds [11:24:04.829] [Info] Root: Loaded TerrainDatabase in 0.00482263 seconds [11:24:04.853] [Info] Root: Loaded BiomeDatabase in 0.0238682 seconds [11:24:04.854] [Info] Root: Loaded LiquidsDatabase in 0.00056246 seconds [11:24:04.859] [Info] Root: Loaded StatusEffectDatabase in 0.00471297 seconds [11:24:05.038] [Info] Root: Loaded DamageDatabase in 0.179477 seconds [11:24:05.042] [Info] Root: Loaded EffectSourceDatabase in 0.00377002 seconds [11:24:05.044] [Info] Root: Loaded FunctionDatabase in 0.00194014 seconds [11:24:05.066] [Info] Root: Loaded TreasureDatabase in 0.02171 seconds [11:24:05.237] [Info] Root: Loaded DungeonDefinitions in 0.171524 seconds [11:24:05.237] [Info] Root: Loaded TilesetDatabase in 3.13315e-05 seconds [11:24:05.239] [Info] Root: Loaded StatisticsDatabase in 0.00166087 seconds [11:24:05.239] [Info] Root: Loaded EmoteProcessor in 5.57338e-05 seconds [11:24:05.244] [Info] Root: Loaded SpeciesDatabase in 0.00526609 seconds [11:24:05.255] [Info] Root: Loaded QuestTemplateDatabase in 0.0105771 seconds [11:24:05.256] [Info] Root: Loaded AiDatabase in 0.0010728 seconds [11:24:05.257] [Info] Root: Loaded TechDatabase in 0.000759788 seconds [11:24:05.262] [Info] Root: Loaded CodexDatabase in 0.0049582 seconds [11:24:05.480] [Info] Root: Loaded BehaviorDatabase in 0.217663 seconds [11:24:05.482] [Info] Root: Loaded DanceDatabase in 0.00172142 seconds [11:24:05.487] [Info] Root: Loaded SpawnTypeDatabase in 0.00563062 seconds [11:24:05.491] [Info] Root: Loaded RadioMessageDatabase in 0.00347056 seconds [11:24:06.493] [Info] Root: Loaded ItemDatabase in 1.88327 seconds [11:24:06.608] [Info] Root: Loaded CollectionDatabase in 1.11721 seconds [11:24:06.986] [Info] detected supported OpenGL texture size 32768, using atlasNumCells 256 [11:24:07.427] [Info] Root: Writing runtime configuration to '..\storage\starbound.config' [11:24:09.848] [Info] UniverseServer: Acquiring universe lock file [11:24:09.849] [Info] UniverseServer: Loading settings [11:24:09.850] [Info] UniverseServer: Starting UniverseServer with UUI bf17708752a1e468c5a8ddb2d2070d47 [11:24:09.858] [Info] UniverseServer: Logged in player 'Sephyros' locally [11:24:09.858] [Info] UniverseServer: Logged in account '<anonymous>' as player 'Sephyros' from address local [11:24:09.861] [Info] UniverseServer: Reviving player at CelestialWorld:-465367778:-435862954:67038016 [11:24:09.861] [Info] UniverseServer: Client 'Sephyros' <1> (local) connected [11:24:09.865] [Info] UniverseClient: Joined server as client 1 [11:24:09.956] [Info] UniverseServer: Loading client ship world ClientShipWorld:d5afa1055266012b8aca03249137b19b [11:24:09.956] [Info] UniverseServer: Loading celestial world -465367778:-435862954:67038016 [11:24:10.054] [Info] detected supported OpenGL texture size 32768, using atlasNumCells 64 [11:24:10.054] [Info] detected supported OpenGL texture size 32768, using atlasNumCells 128 [11:24:10.058] [Info] detected supported OpenGL texture size 32768, using atlasNumCells 256 [11:24:10.058] [Info] detected supported OpenGL texture size 32768, using atlasNumCells 256 [11:24:10.157] [Info] UniverseServer: listening for incoming TCP connections on 0.0.0.0:21025 [11:24:10.598] [Info] UniverseServer: Warping player 1 to CelestialWorld:-465367778:-435862954:67038016=2405.4.718 [11:24:10.682] [Info] UniverseServer: Flying player 1 ship to starter world -465367778:-435862954:67038016 [11:24:10.682] [Info] UniverseServer: Arriving ship for player 1 at -465367778:-435862954:67038016 [11:24:10.683] [Info] UniverseServer: Stopping idle world ClientShipWorld:d5afa1055266012b8aca03249137b19b [11:24:22.451] [Info] Root: Writing runtime configuration to '..\storage\starbound.config' [11:24:27.460] [Info] Root: Writing runtime configuration to '..\storage\starbound.config' [11:27:52.071] [Info] Chat: Debug display enabled [11:29:14.121] [Info] Application: quit requested [11:29:14.121] [Info] Application: quitting... [11:29:14.121] [Info] Application: shutdown... [11:29:14.122] [Info] UniverseClient: Client disconnecting... [11:29:14.212] [Info] Client received world stop packet, leaving: Removed [11:29:14.216] [Info] UniverseServer: Client 'Sephyros' <1> (local) disconnected for reason: [11:29:14.216] [Info] UniverseServer: Stopping idle world CelestialWorld:-465367778:-435862954:67038016 [11:29:14.474] [Info] UniverseServer: Stopping UniverseServer [11:29:14.474] [Info] UniverseServer: Stopping TCP Server [11:29:14.683] [Info] Root: Shutting down Root [11:29:14.908] [Info] Application: Destroying SDL Window [11:29:15.010] [Info] Application: stopped gracefully
if you surround it in [plain][/plain] you won't have all the emojis (put the [plain][/plain] INSIDE the spoilers, not outside bc then the spoilers will not work)
require "/scripts/util.lua" require "/scripts/vec2.lua" require "/items/active/weapons/weapon.lua" function init() animator.setGlobalTag("paletteSwaps", config.getParameter("paletteSwaps", "")) animator.setGlobalTag("directives", "") animator.setGlobalTag("bladeDirectives", "") self.weapon = Weapon:new() self.weapon:addTransformationGroup("weapon", {0,0}, util.toRadians(config.getParameter("baseWeaponRotation", 0))) self.weapon:addTransformationGroup("swoosh", {0,0}, math.pi/2) local primaryAbility = getPrimaryAbility() self.weapon:addAbility(primaryAbility) local secondaryAttack = getAltAbility() if secondaryAttack then self.weapon:addAbility(secondaryAttack) end self.weapon:init() self.activeTime = config.getParameter("activeTime", 2.0) self.activeTimer = 0 animator.setAnimationState("blade", "inactive") animator.setAnimationState("dragonskull", "skull") end function update(dt, fireMode, shiftHeld) self.weapon:update(dt, fireMode, shiftHeld) local nowActive = self.weapon.currentAbility ~= nil if nowActive then if self.activeTimer == 0 then animator.setAnimationState("blade", "extend") animator.setAnimationState("dragonskull", "opening") end self.activeTimer = self.activeTime elseif self.activeTimer > 0 then self.activeTimer = math.max(0, self.activeTimer - dt) if self.activeTimer == 0 then animator.setAnimationState("blade", "retract") animator.setAnimationState("dragonskull", "shutting") end end end function uninit() self.weapon:uninit() end I am spawning and using the weapon in the log, everything is working except there is no swoosh animations or damage area when I perform the combo....the red particles show up and that is it
What I noticed about your animation file compared to mine, is that under "swoosh" there is no offset... like in mine (Which is working) Code: "swoosh" : { "properties" : { "zLevel" : -1, "centered" : true, "offset" : [-0.2, 2.8], "transformationGroups" : ["swoosh"], "rotationCenter" : [0, 0] Dunno if that'd mean that your png's won't show, but I don't think trying will hurt. Edit: Weapons says twohanded = true, but there is no alt, game might not like that.
well I tried the offset change.....it didnt work and I remember that im using a combo so the offset comes in the form of the fire1, fire2, fire3....etc I also tried adding an alt ability and that did not work, then I tried making it one handed and that did not do anything either sooo Im still at a loss...
To fix damage I set damageSourceKind equal to boradsword in your weaponability file. *IF* you tried making a damage type for floransaber it likely is not formatted properly, as it apparently isn't registering. The swoosh problems are likely a problem with the folder structure OR your pathing OR a missing frames file. The default broadsword swoosh worked fine when the path was switched to them. To fix it i'd need you to post a zipped version of the whole folder.