--- orig/shared/command.h
+++ mod/shared/command.h
@@ -75,6 +75,7 @@
 
 extern void addident(const char *name, ident *id);
 extern void intret(int v);
+extern void floatret(float v);
 extern void result(const char *s);
 
 // nasty macros for registering script functions, abuses globals to avoid excessive infrastructure
--- orig/engine/command.cpp
+++ mod/engine/command.cpp
@@ -607,6 +607,7 @@
 // () and [] expressions, any control construct can be defined trivially.
 
 void intret(int v) { s_sprintfd(b)("%d", v); commandret = newstring(b); }
+void floatret(float v) { s_sprintfd(b)("%.6f", v); commandret = newstring(b); }
 
 ICOMMAND(if, "sss", (char *cond, char *t, char *f), commandret = executeret(cond[0]!='0' ? t : f));
 ICOMMAND(loop, "sis", (char *var, int *n, char *body), 
