Floating and widening now 200% more useful

Due to added return values, the optional ability for internal code to
cancel the effect, and a revamped event system allowing plugins to be
notified of these things.