A new host for ozzypig.com!

It’s my pleasure to announce that I’ve moved this website, ozzypig.com, to a new host: Vultr.com! After nearly 10 years on my previous host, I’ve moved to a host that gives me better speed, better uptime and most importantly: more control. I have learned so much about the web during that 10 years, and it’s finally time I take the reins.

Something else worth mentioning: the server hosting this site is beefier, which means I can host more software than just my website. Web services for my Roblox games will also live here, as well as some continuous integration software for DevOps type stuff. Exciting!

Previously, web traffic to this site was proxied through Cloudflare. Unfortunately, the mail server was also on the same host, and its traffic wasn’t proxied! This revealed the web server IP, which wasn’t a huge deal, but it made using Cloudflare kinda pointless.

A separate mail server is now set up – I am configuring it myself to suit my needs. (If you have notice mail failing to send, that’s probably why.) Cloudflare’s still being used for my web server, though!

I’ve chosen to move to Vultr because I’m familiar with their excellent platform and love their wide variety of services. I know that sounds like a super generic endorsement, but seriously: you’ll probably find something useful on their platform (general cloud compure, S3-compatible storage, load balancers etc). Their support responds fast and they’re friendly: I’ve never had an unpleasant time when working with them.

Don’t hesitate to contact me (eg. through Twitter) if you notice anything about my website that seems off.

Disclaimer: Links to Vultr.com within this post use my referral link. By visiting their site via these links and using their services, you can support this website directly. I don’t often endorse products, except when they’ve really been useful. Thank you!

Introducing: Modules

The logo for Modules
A fancy logo for Modules I came up with

It’s my pleasure to announce Modules, a simple dependency loader for Roblox!

Modules comes with goodies, too: Event , Maid  and StateMachine  classes just to name a few. These patterns are so commonplace in Roblox development today, they felt right at home to be included.

With Modules, you can require strings instead of ModuleScripts. This greatly simplifies your scripts’ dependencies and streamlines creation of client and server code.

Download: Model on Roblox.com, GitHub releases
Links:
Documentation, Repository on GitHub

Continue reading “Introducing: Modules”

Hunger Games: Game Integrity Updates

This week I’ve been releasing integrity updates to the Hunger Games which should fix many long-standing issues. Thank you to the community for helping identify these bugs.

  • Part 1 (May 21):
    • Change: The torch heals 1% hp/s → 1.5% hp/s
    • Fix: Projectile weapons work properly upon respawning.
    • Fix: Certain faces no longer break the server.
    • Fix: Healing from the torch can no longer be stacked.
    • Fix: Reduced outlines on the skybox texture.
  • Part 2 (May 22):
    • Fix: Shop, Spectate, Help and About windows scale on small screens better!
    • Fix: Melee weapons cannot deal damage until they’ve been equipped for a moment.
    • Fix: Ranged weapons fire properly when picked up from the ground.
    • Fix: Text is now properly filtered in sponsor notes.

Continue reading “Hunger Games: Game Integrity Updates”

Fix: RBXL files don’t open Roblox Studio properly

Hey all, I fixed this issue the other day. It took a little know-how, so I figured I’d write about it here in case anyone else ran into this. Hello to anyone from Google or the great beyond.

The Problem: Opening RBXL files in Windows Explorer starts Roblox Studio, but fails to actually open the RBXL file. (May also happen with RBXLX files, the XML counterpart to the binary RBXL files)

Continue reading “Fix: RBXL files don’t open Roblox Studio properly”

repr — function for printing Lua tables

Hey all!

I wrote a function that will come in handy when printing tables in Lua. Normally, when you call print on a table, it is first tostring-ed into a memory address and looks something like table: 000002074CD2C070. How unhelpful! If only there was a better way…

I’ve created a function, repr, that works like Python’s repr. It returns a nice, printable representation of Lua values (strings, numbers, bools, and of course tables). It is designed with two goals in mind: (1) be as close as possible to a literal code representation and (2) be as useful as possible during debugging. Check it out at this GitHub repository, or keep reading this post!

Continue reading “repr — function for printing Lua tables”

Fast Distance Comparison Algorithm

Hey, this is a quick post about quickly comparing the distance of two points (2D or 3D). In this article, I’ll be using Roblox Lua for demonstration, but this method ought to work in many different languages. The goal is to find a fast way to answer the questions:

  • Is a point within a certain distance of another point?
  • Which of these two points are closest to this point?

Continue reading “Fast Distance Comparison Algorithm”

Spell Slingers Character/Ability Previews

Hey everyone! I took some time today to record some previews for a few characters/abilities in Spell Slingers. These are all works-in-progress with placeholder character names, models and kits. Everything’s subject to change, but in the meantime I want your feedback! So, what do you think?

I’m open to feedback on Twitter or via the game’s Discord server; this invite link still has more than 50 uses left from last week’s announcement – check the Spell Slingers splash page and Twitter in case this invite expires!