This mod is meant to be used by other mods. It doesn't affect your game by
itself. It's also fairly complex due to how the lua code works in starbound. If
you feel this mod may help you but are having trouble understanding how it
works, please file a github issue so I can help out.
What is it?
This mod enables dependent mods to write functions which will run during the
init and update Lua Hooks of an everlasting invisible quest. Your function will
thus have access to globals such as player which are available in quest contexts,
which is the purpose of this mod.
Why create it?
I'm new to modding, but this seemed to be the easiest way for me to keep track
of whether a player contained an item in their inventory. Because
player_primary.lua doesn't have access to the player global, I use this mod in my
Health Monitor to poll the inventory and send a message to the player if the
health monitor is added or removed. It can then stop or start the low health
effect accordingly.
How to install it
Like this
How to use it
This mod makes use of my Lua Hooks mod to expose hooks, so first you'll need
to add an init script as explained on that repo.
Assume the following
- you have a mod named 'my-mod'
- you patched the initscripts.json to add a script my-init-script.lua
- you want to print "quest init ran!" when the invisible quest runs init()
- and you want to print "quest update ran!" when the invisible quest runs update()
You would achieve 3 & 4 by writing:
Code:-- /mods/my-mod/my-init-script.lua -- -- just some convenience variables -- local questScopeHooks = luaHooks.questScopeHook["/quests/scripts/questscopehook.lua"] local functionsToRun = { onQuestInit = questScopeHooks.onInit, onQuestUpdate = questScopeHooks.onUpdate } -- -- now for the functions we want to call (assumptions 3 & 4) -- local willRunOnQuestInit = function() sb.logInfo("quest init ran!") end -- this will spew a lot of lines in starbound.log! local willRunOnQuestUpdate = function() sb.logInfo("quest update ran!") end -- -- and finally insert the functions into the hooks -- table.insert(functionsToRun.onQuestInit, willRunOnQuestInit) table.insert(functionsToRun.onQuestUpdate, willRunOnQuestUpdate)
Notes
- I didn't know what dt value to put for the quest so I arbitrarily coded it to 30. If
you feel this should be a different value then you should file an issue so I can
understand why. I'm open to changing it.
- Currently this only exposes the init() and update() methods of the quest. If you
want more to be added just file an issue.
- Mod Pack Permissions:
- Anyone can use this mod in their mod compilation without the author's consent.
- Mod Assets Permissions:
- Anyone can alter/redistribute the mod's assets without the author's consent.
-
Welcome to the official Starbound Mod repository, Guest! Not sure how to install your mods? Check out the installation guide or check out the modding help thread for more guides.Dismiss Notice
Outdated Mods have been moved to their own category! If you update your mod please let a moderator know so we can move it back to the active section.

Quest Scope Hook 0.1
Run code inside the context of an invisible everlasting quest