Cracker's Work Log


I will be posting things here that I have been working on for anybody who wants to follow what I have been doing.

I’ll start with a recap of everything I have so far:

1: Window UI library for Hifi - Lets me create overlays and just drop them in to make them movable and have minimize/close capability. It also stores the last known position of each window and puts it right back when you run the script next time (if the window is given a unique id name).

2: Domain chat server/client - Displays a list of users currently in the domain and allows you to chat with them and send private messages. Also includes admin controls for muting users, hiding, etc. I intend to work in a registration system to allow users to register their name, and promotions to promote users to various positions (such as land manager for example) and give them commands of their own.

3: Single-Serving Javascript server - serves up javascripts just once and removes them from the url so they cannot be used as includes in other peoples scripts (for example: No free script hosting here sorry! It will also serve dynamic code.

4: CraxIM instant messenger - still a work in progress. Allow you to chat with people you have added to your friends list (if they use the instant messenger too). I would like to add capability for users to provide their own pgp keys (for everybody or per-friend) so they can feel secure that their messages are encrypted. I also want to add user profiles, and a place to post events (sort of like the events section in SL). Also, somebody made some good points about ads. I will not be using ads in the messenger.

5: A bot that can manage the domain, user lists etc. This project will probably never be finished because it is so important.


Ok I have domain chat up and running in Code. It should be working properly now.


Let the work on zones begin!

  • Named zones now fade in and out on your screen as you enter them.
  • started implementing public and private zones.


Hacked together a couple of animated procedural skybox shaders today.


More shader work! This time I have been working with animating hexagons.
*Edit: Worked on the clouds a bit more and added a pic of the final product below.

My little island.

Animated ocean! No I am not a messiah, the water is just real shallow.

Animated procedural hexagon clouds.

Wavy grass. Sometimes you can see a bug fly by.

I have all this up at hifi://code. Stop on by and take a look!


Here’s a video:


I have made a couple of improvements to my HiFi windows library

Added a lock/unlock button to non-tabbed windows (e.g. GUI/HUD/Widget type windows)

  • When the window is locked the window only appears when you mouseover the
    button and it locks the position so the window cannot be moved.
  • When it is unlocked, the window stays visible and can be moved around

Fixed saved window positions. Your window positions will be saved and loaded every time you run a script using unique window names.

As always you are welcome to go to hifi://code to try this out. For those of you who can’t get chat to work you will need to fix your network to allow websockets. I am eventually going to implement something that will keep users who cannot connect in a small public area that they cannot leave if they aren’t connected.

Edit: Forgot to save unlocked/locked window setting values. They are now saved to carry through script restarts.


Oh yeah one more thing. I had a friend request that I host a domain-wide chat client for him in his domain. This would be pretty easy for me to do and if there is enough interest I might just make that into a business thing but have a free beta test.

It has features like a userlist, private messaging, and admin features: mute/unmute, hide, server messages and some other things. I still need to add sql to add more important things like IP/name bans, user registration, etc. (it can already send emails with a single-use link for verification).

If you are interested let me know!


Another update for domain chat:

  • Changed the lock/unlock buttons. They are now smaller and less intrusive. Unlocked is a white dot, locked is the same dot with a circle around it. Also added a small black border to the dot so it can be seen against a white background.

  • Locked windows now turn green when the window has had activity (user list and chat history windows). That way you can be alerted that something new has happened since the window is minimized. When you mouseover the button it shows the window and turns white again.

  • Server messages are now red.

  • Preparing domain chat to implement within CraxIM so we will have a combined domain chat and instant messenger all in one. Domain chat and global instant messaging will be free to all users and domains, with no ads. CraxIM has not been released yet but I will post a new thread announcing it as soon as it is ready for alpha testing.


I’m still here! I took a break for a couple of weeks but I am back continuing work on a new project. I can’t talk about it yet but it is something pretty major (and pretty ‘miner’ :D) that I think everybody might be interested in. More details later.


Still hard at work. This current project involves a lot of learning of new things because it is huge and complex. It is coming along though!


It is just a “bit” too in depth to rush out I assume :stuck_out_tongue:


The immediate future of Thrall.


Nice. Will it have rights management beyond use/sell? I’d love to see resale rights with auto license fee payback to the IP owner. By far the lack of resale made the issue of multi-owner assemblies impossible in legacy grids like SL.


Yes resell rights with commissions optional. Actually nothing will be “sold”. This implies eternal usage until the death of the universe. “Rented” is more appropriate because everything will have a time limit. This will keep outdated items from cluttering up the marketplace and allow sellers to choose how long you get to use the item. Time periods as short as an hour up to years. Although… you will be able to sell or give away full rights of an asset forever if you want to, but I won’t be providing anything to support that aside from blockchain digital signature contracts.

Some other things to be implemented:

  • stacks (stacked items, e.g. ammo, a stack of 20 chairs, etc)

  • groups that work as a multi-signature wallet/inventory (they can create and sell assets, share inventory and split commissions, create their own currency/tokens, vote and set ranks and titles). They could be a gamer guild, role play group, owners of a company, or simply want all their profits split.

  • encryption so only those who have the rights to a file can decrypt it (e.g. viewers of your worn hair). As always URLs of hosted assets will change every time they are served.

  • several different cryptocoin options: bitcoin, litecoin, dogecoin, custom currency (generated on the fly by anybody any time for things such as coupons, voting, stock shares) and others…

  • onWear, onUse scripts. Also datafiles (for things like notes, instructions or user data… sort of like SL notecards)

This system is independant of HiFi. It is intended to be used for any metaverse or online game so it will provide API (it could even function as an inventory/money/trade system for a game within a metaverse).

The free version will charge transaction and listing fees, but I will offer custom versions for projects as well.


Selling on the marketplace - simple example

This example is assuming there is an interface for buying and selling in HiFi. Since Thrall is a third-party Inventory Management system it could be used on any number of metaverses, sub-metaverses or even online games each with their own interface but functionality should be the same.

Let’s say you have created some apples you want to sell.


  1. Upload the mesh file. It shows up in your inventory (The name of the item will be in white). Optionally, upload any scripts you may want to attach to the item. Optionally create an instruction card.

  2. Edit the item as desired.

  • Set the name of the item
  • Attach any onWear or onUse scripts to the item. Since these apples refill your blood level for your vampire friends to feed on you, we want to attach the onUse script we uploaded earlier.
  • Attach a data file to the item (e.g. instruction card)
  • Set stack size - Since they are apples, you might want to make them in stacks of 12 at a time. This way users would have a single item in their inventory that they can pull 12 apples from. Select a stack size of 12. Later we can do all this again and make larger stack sizes that cost more.
  • If you want the item to be usable in group inventories, select maximum allowable group size. Right now we are creating stacks for single users. Later on we can do all this again but sell a version for groups up to 8 members, this way our customers in vampire clans can share apples amongst their members. We can make even more versions for larger and larger groups and charge more if we want. Actually now that we think about it, since these apples are single-use items anyway lets set it at the maximum group size, since they will obviously use more apples and buy even more!
  • Enable “Delete on use”. Since they are “eating” these apples, we want them to be deleted when they are “used”. Of course the stack itself will not delete, but they have to remove an apple from the stack before they can use it anyway.
  1. Make sure all your settings are correct and create the item.

  2. Test the item to make sure it works correctly.


  1. Right click the item in inventory and select Sell. Now we have another window where we need to enter more information.
  • Set the price

  • Set the rental duration - anywhere from 1 hour (e.g. a demo of the item) to a year ( or more, maybe). Since our vampire game is super-hardcore-realistic we want our apples to “rot”, so let’s set this to 2 weeks. They have two weeks to eat all these apples or they will no longer function (the name of the item in their inventory will turn gray). That’s ok though it will still be in their inventory when it expires with a link so they can buy more.

  • Select the amount of items to sell. Since listings are not infinite we need to select how many to sell. Our apples are very special and happen to be extra strong. We don’t want to imbalance our vampire game so we will make these limited edition apples and set the amount to 100 dozen (we are selling stacks of 12 remember?).

  • Select the network the item is to be used on (High Fidelity, for example). This is because Thrall will be available to many metaverses or even online games who may use different scripting languages or asset file types. If you wanted to you could even sell the same items for multiple different networks (if they are not set to private).

  • Optionally set the item as resellable and set the minimum fee per sale and/or commission percentage you want to receive. These are limited edition apples, so no we don’t want others selling them, although there may be users who have built up a huge reputation with vampires and want to sell them in their Vampire store. Maybe we will make some weaker apples later for them to sell.

  • Make sure our listing is appropriately flagged. Since our apples are not adult items, are probably not illegal in any countries in the world, and are probably not going to be offensive to anybody, we won’t need to set those. Our apples are stacks and single-use though so we need to flag it as “No Refunds”. We don’t want to refund half-eaten apples!

  • Enter a support URL or support email. We want our users to feel confident in our fine apples so we will include a link to our support url where they can open support tickets.

  • Set the item as Listed. From here you could either link the item to another user for a private sell, share it with your vampire group or you can choose to post it on the marketplace listing for your selected network.

  • Now we can look everything over to make sure everything is correct and hit Accept. Our apples are now listed on the marketplace and users can buy and use them! Vampires everywhere will thank us.

A couple of notes on this:

  • Selling can be toggled on and off. Items currently being sold cannot be edited or deleted.
  • If there are customers who have bought the item and are still within their rental period, the created item in your inventory cannot be edited or deleted. You will have to wait until all customers rental periods have expired to edit or delete it. You can turn off Selling and move it into another folder though.
  • Resellable settings (minimum fee and commission %) will override your set price. Setting your price is only for direct selling.
  • Resellers are not considered buyers so do not count when calculating remaining rental period, however their customers do count as your renters, so your item cannot be deleted or edited as long as your reseller has customers who are still within their rental period. Keep in mind though, if you toggle Selling off, it will deactivate selling for your resellers too.
  • Creators are able to update their asset files, scripts and data files at any time. To prevent creators from intentionally breaking items, all previously used asset files will remain undeletable until all rental periods have expired, and users may fallback to a previous version.
  • DMCA takedowns will result in broken items for all renters of that particular item (who will be notified of DMCA takedown). Any support url or email address originally listed on item will remain.

I am always interested in hearing any comments, suggestion or ideas so don’t be afraid to post a reply, thanks!


I am readying my auto-aiming wooden stake machine gun :slightly_smiling:


Thrall (formerly craxim) Ammo Logo


I had planned on using Ethereum for this but since the DAO tragedy I have decided to make the move to DeOS.

Aside from appearing more trustworthy, DeOS appears to have functionality more akin to what is needed for Project Ammo.

A year later and DEOS turned out to be a scam. What a shame because something like this is needed. I don’t think they originally intended it to be a scam but quickly figured out they bit off more than they could chew but ended up keeping everybodys BTC and ran. There has yet to be a legal response although many have reported it.


The Shader Test video link was not working… Here is a new one.

Pretty much everything you see is custom code (“now entering/leaving”, the chat hud, all the shaders except the sign).

This is at ‘Code’ by the way, if you would like to visit and see for yourself (if the server is up).